Question :
I can create a similar Date object in Java by java.util.Date(milliseconds). How do I create the comparable in Python?
Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as “the epoch”, namely January 1, 1970, 00:00:00 GMT.
Answer #1:
Just convert it to timestamp
datetime.datetime.fromtimestamp(ms/1000.0)
Answer #2:
What about this? I presume it can be counted on to handle dates before 1970 and after 2038.
target_date_time_ms = 200000 # or whatever
base_datetime = datetime.datetime( 1970, 1, 1 )
delta = datetime.timedelta( 0, 0, 0, target_date_time_ms )
target_date = base_datetime + delta
as mentioned in the Python standard lib:
fromtimestamp() may raise ValueError, if the timestamp is out of the
range of values supported by the platform C localtime() or gmtime()
functions. It’s common for this to be restricted to years in 1970
through 2038.
Answer #3:
Bit heavy because of using pandas but works:
import pandas as pd
pd.to_datetime(msec_from_java, unit='ms').to_pydatetime()
Answer #4:
Converting millis to datetime (UTC):
import datetime
time_in_millis = 1596542285000
dt = datetime.datetime.fromtimestamp(time_in_millis / 1000.0, tz=datetime.timezone.utc)
Converting datetime to string following the RFC3339 standard (used by Open API specification):
from rfc3339 import rfc3339
converted_to_str = rfc3339(dt, utc=True, use_system_timezone=False)
# 2020-08-04T11:58:05Z
Answer #5:
import pandas as pd
Date_Time = pd.to_datetime(df.NameOfColumn, unit='ms')