Mogę utworzyć podobny obiekt Date w Javie przez java.util.Date (milisekundy) . Jak stworzyć porównywalne w Pythonie?
Przydziela obiekt Date i inicjalizuje go, aby reprezentował określoną liczbę milisekund od standardowego czasu bazowego zwanego „epoką”, czyli 1 stycznia 1970 r. O godzinie 00:00:00 czasu GMT.
datetime.utcfromtimestamp(ms//1000).replace(microsecond=ms%1000*1000)
A co z tym? Przypuszczam, że można liczyć na to, że poradzi sobie z datami sprzed 1970 roku i po 2038 roku.
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
jak wspomniano w standardowej bibliotece języka Python:
źródło
utc_time = datetime(1970, 1, 1) + timedelta(milliseconds=millis)
Trochę ciężki z powodu używania pand, ale działa:
import pandas as pd pd.to_datetime(msec_from_java, unit='ms').to_pydatetime()
źródło
import pandas as pd Date_Time = pd.to_datetime(df.NameOfColumn, unit='ms')
źródło
Zamiana milis na datetime (UTC):
import datetime time_in_millis = 1596542285000 dt = datetime.datetime.fromtimestamp(time_in_millis / 1000.0, tz=datetime.timezone.utc)
Konwersja daty i godziny na ciąg zgodnie ze standardem RFC3339 (używanym przez specyfikację Open API):
from rfc3339 import rfc3339 converted_to_str = rfc3339(dt, utc=True, use_system_timezone=False) # 2020-08-04T11:58:05Z
źródło