How do I create a datetime in Python from milliseconds? I can create a similar Date object in Java by java.util.Date(milliseconds).
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.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Just convert it to timestamp
datetime.datetime.fromtimestamp(ms/1000.0)
Method 2
What about this? I presume it can be counted on to handle dates before 1970 and after 2038.
target_datetime_ms = 200000 # or whatever
base_datetime = datetime.datetime(1970, 1, 1)
delta = datetime.timedelta(0, 0, 0, target_datetime_ms)
target_datetime = 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.
Very obviously, this can be done in one line:
target_dt = datetime(1970, 1, 1) + timedelta(milliseconds=target_dt_ms)
Method 3
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
Method 4
Bit heavy because of using pandas but works:
import pandas as pd pd.to_datetime(msec_from_java, unit='ms').to_pydatetime()
Method 5
import pandas as pd Date_Time = pd.to_datetime(df.NameOfColumn, unit='ms')
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0