22from typing import Optional
33
44
5- def timestamp (dt : Optional [datetime ] = None , digits : Optional [int ] = 10 ) -> int :
6- """
7- get timestamp from datetime object
5+ def timestamp (dt : Optional [datetime ] = None , digits : int = 10 ) -> int :
6+ """get timestamp from datetime object
7+
8+ Args:
9+ dt (Optional[datetime], optional): datetime object. Defaults to None.
10+ digits (int, optional): timestamp digits, 10 or 13. Defaults to 10.
811
9- :param dt: datetime object, default to current time
10- :param digits: timestamp digits, 10 or 13, default to 10
11- :return: integer timestamp
12+ Returns:
13+ int: integer timestamp
1214 """
1315 if dt is None :
1416 dt = datetime .now ()
@@ -19,3 +21,20 @@ def timestamp(dt: Optional[datetime] = None, digits: Optional[int] = 10) -> int:
1921 return int (dt .timestamp () * 1000 )
2022 else :
2123 raise ValueError ("timestamp digits must be 10 or 13" )
24+
25+
26+ def to_datetime (ts : int ) -> datetime :
27+ """convert timestamp to datetime
28+
29+ Args:
30+ ts (int): timestamp, can be 10 or 13 digits
31+
32+ Returns:
33+ datetime: datetime object
34+ """
35+ if len (str (ts )) == 13 :
36+ return datetime .fromtimestamp (ts / 1000 )
37+ elif len (str (ts )) == 10 :
38+ return datetime .fromtimestamp (ts )
39+ else :
40+ raise ValueError ("timestamp digits must be 10 or 13" )
0 commit comments