;i= dZddlZddlmZddlmZdedefdZdedefd Z d edefd Z d edefd Z dedefdZ defdZ dedefdZdedefdZdedefdZdedefdZdedefdZ ddedeejdejfdZdS)z#Contains the Timestamp helper APIs.N)Optional) TimestampvaluereturncLt}|||S)a<Parse a RFC 3339 date string format to Timestamp. Args: value: A date string. Any fractional digits (or none) and any offset are accepted as long as they fit into nano-seconds precision. Example of accepted format: '1972-01-01T10:00:20.021-05:00' Raises: ValueError: On parsing problems. )rFromJsonString)r timestamps MC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\google/protobuf/timestamp.pyfrom_json_stringr s'kk) 5!!! microscLt}|||S)z/Converts microseconds since epoch to Timestamp.)rFromMicroseconds)r r s r from_microsecondsr %kk) V$$$ r milliscLt}|||S)z/Converts milliseconds since epoch to Timestamp.)rFromMilliseconds)rr s r from_millisecondsr'rr nanoscLt}|||S)z.Converts nanoseconds since epoch to Timestamp.)rFromNanoseconds)rr s r from_nanosecondsr.s%kk) E""" r secondscLt}|||S)z*Converts seconds since epoch to Timestamp.)r FromSeconds)rr s r from_secondsr5s%kk)    r ct}|tjtjj|S)z&Converts the current UTC to Timestamp.)tz)r FromDatetimedatetimenowtimezoneutc)r s r from_current_timer%<s?kk) *..(2C2G.HHIII r tsc*|S)aConverts Timestamp to RFC 3339 date string format. Returns: A string converted from timestamp. The string is always Z-normalized and uses 3, 6 or 9 fractional digits as required to represent the exact time. Example of the return format: '1972-01-01T10:00:20.021Z' ) ToJsonStringr&s r to_json_stringr*Cs   r c*|S)z/Converts Timestamp to microseconds since epoch.)ToMicrosecondsr)s r to_microsecondsr-N    r c*|S)z/Converts Timestamp to milliseconds since epoch.)ToMillisecondsr)s r to_millisecondsr1Sr.r c*|S)z.Converts Timestamp to nanoseconds since epoch.) ToNanosecondsr)s r to_nanosecondsr4Xs    r c*|S)z*Converts Timestamp to seconds since epoch.) ToSecondsr)s r to_secondsr7]s r rc.||S)a7Converts Timestamp to a datetime. Args: tz: A datetime.tzinfo subclass; defaults to None. Returns: If tzinfo is None, returns a timezone-naive UTC datetime (with no timezone information, i.e. not aware that it's UTC). Otherwise, returns a timezone-aware datetime in the input timezone. )tzinfo) ToDatetime)r&rs r to_datetimer;bs b ! !!r )N)__doc__r!typingrgoogle.protobuf.timestamp_pb2rstrr floatrrrrr%r*intr-r1r4r7r9r;r r rCs*)333333 C I     e e Ei%I9yS c  c yS 9 48"""0" """"""r