Parses an input string according to the provided format string and returns the corresponding absl::Time. Uses strftime()‐like formatting options, with the same extensions as FormatTime(), but with the exceptions that %E#S is interpreted as %E_S, and %E#f as %E_f. %Ez and %E*z also accept the same inputs, which (along with %z) includes 'z' and 'Z' as synonyms for +00:00. %ET accepts either 'T' or 't'.

Synopsis

Declared in <absl/time/time.h>

bool
ParseTime(
    std::string_view format,
    std::string_view input,
    Time* time,
    std::string* err);

Description

%Y consumes as many numeric characters as it can, so the matching data should always be terminated with a non‐numeric. %E4Y always consumes exactly four characters, including any sign.

Unspecified fields are taken from the default date and time of ...

"1970‐01‐01 00:00:00.0 +0000"

For example, parsing a string of "15:45" (%H:%M) will return an absl::Time that represents "1970‐01‐01 15:45:00.0 +0000".

Note that since ParseTime() returns time instants, it makes the most sense to parse fully‐specified date/time strings that include a UTC offset (%z, %Ez, or %E*z).

Note also that absl::ParseTime() only heeds the fields year, month, day, hour, minute, (fractional) second, and UTC offset. Other fields, like weekday (%a or %A), while parsed for syntactic validity, are ignored in the conversion.

Date and time fields that are out‐of‐range will be treated as errors rather than normalizing them like absl::CivilSecond does. For example, it is an error to parse the date "Oct 32, 2013" because 32 is out of range.

A leap second of ":60" is normalized to ":00" of the following minute with fractional seconds discarded. The following table shows how the given seconds and subseconds will be parsed:

"59.x" ‐> 59.x // exact "60.x" ‐> 00.0 // normalized "00.x" ‐> 00.x // exact

Errors are indicated by returning false and assigning an error message to the "err" out param if it is non‐null.

Note: If the input string is exactly "infinite‐future", the returned absl::Time will be absl::InfiniteFuture() and true will be returned. If the input string is "infinite‐past", the returned absl::Time will be absl::InfinitePast() and true will be returned.

Return Value

true upon successful parsing.

Parameters

Name

Description

format

The strftime()‐like format string.

input

The string to parse.

time

Output parameter receiving the parsed time.

err

Output parameter receiving an error message on failure.

Created with MrDocs