TF 2.0 is out! Get hands-on practice at TF World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

tfa.text.parse_time

View source on GitHub

Parse an input string according to the provided format string into a

Aliases:

tfa.text.parse_time(
    time_string,
    time_format,
    output_unit
)

Unix time.

Parse an input string according to the provided format string into a Unix time, the number of seconds / milliseconds / microseconds / nanoseconds elapsed since January 1, 1970 UTC.

Uses strftime()-like formatting options, with the same extensions as FormatTime(), but with the exceptions that %E#S is interpreted as %ES, and %E#f as %Ef. %Ez and %E*z also accept the same inputs.

%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 Unix time that represents "1970-01-01 15:45:00.0 +0000".

Note that 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

Args:

  • time_string: The input time string to be parsed.
  • time_format: The time format.
  • output_unit: The output unit of the parsed unix time. Can only be SECOND, MILLISECOND, MICROSECOND, NANOSECOND.

Returns:

the number of seconds / milliseconds / microseconds / nanoseconds elapsed since January 1, 1970 UTC.

Raises:

  • ValueError: If output_unit is not a valid value, if parsing time_string according to time_format failed.