The OpenD Programming Language

Timestamp.fromISOString

Creates a Timestamp from a string with the format `YYYYMMDDThhmmss±hhmm or its leading part allowed by the standard.

or its leading part allowed by the standard.

import mir.timestamp;
struct Timestamp
@serdeIgnore
alias fromISOString = fromISOStringImpl!false

Return Value

bool on success for two arguments overload, and the resulting timestamp for single argument overdload.

Throws

DateTimeException if the given string is not in the correct format. Two arguments overload is nothrow.

Examples

assert(Timestamp.fromISOString("20100704") == Timestamp(2010, 7, 4));
assert(Timestamp.fromISOString("19981225") == Timestamp(1998, 12, 25));
assert(Timestamp.fromISOString("00000105") == Timestamp(0, 1, 5));
// assert(Timestamp.fromISOString("-00040105") == Timestamp(-4, 1, 5));

assert(Timestamp(2021) == Timestamp.fromISOString("2021"));
assert(Timestamp(2021) == Timestamp.fromISOString("2021T"));
// assert(Timestamp(2021, 01) == Timestamp.fromISOString("2021-01"));
// assert(Timestamp(2021, 01) == Timestamp.fromISOString("2021-01T"));
assert(Timestamp(2021, 01, 29) == Timestamp.fromISOString("20210129"));
assert(Timestamp(2021, 01, 29, 19, 42) == Timestamp.fromISOString("20210129T1942"));
assert(Timestamp(2021, 01, 29, 19, 42).withOffset(0) == Timestamp.fromISOString("20210129T1942Z"));
assert(Timestamp(2021, 01, 29, 19, 42, 12) == Timestamp.fromISOString("20210129T194212"));
assert(Timestamp(2021, 01, 29, 19, 42, 12, -3, 67).withOffset(0) == Timestamp.fromISOString("20210129T194212.067Z"));
assert(Timestamp(2021, 01, 29, 12, 42, 44).withOffset(7 * 60) == Timestamp.fromISOString("20210129T194244+07"));
assert(Timestamp(2021, 01, 29, 12, 42, 44).withOffset(7 * 60 + 30) == Timestamp.fromISOString("20210129T201244+0730"));
static assert(Timestamp(2021, 01, 29, 12, 42, 44).withOffset(7 * 60 + 30) == Timestamp.fromISOString("20210129T201244+0730"));
static assert(Timestamp(2021, 01, 29,  4, 42, 44).withOffset(- (7 * 60 + 30)) == Timestamp.fromISOString("20210128T211244-0730"));

Meta