Как я могу правильно установить значение даты и времени из unix time? - PullRequest
0 голосов
/ 18 ноября 2018

UNIX Timestamp

  1262304000
  1224633600
  940636800
  939772800
  1332288000
  1096934400
  1088121600    
   ...

1.Попробовать

frmt_date = dt.datetime.utcfromtimestamp(1088121600).strftime("%Y/%m/%d %H:%M")

Эти результаты значения времени были 00:00.

(результат)

 2012-10-11 00:00
 2004-04-20 00:00
 1999-01-07 00:00
 ....
  1. Попробуйте

     def xldate_to_datetime(xldate):
     temp = dt.datetime(1899, 12, 30)
     delta = dt.timedelta(days=xldate)
     return temp+delta
     ts = "1262304000"
     tsxl = ((int(ts)/60)/60)/24 + 25569
     readabledate =  xldate_to_datetime(tsxl)
     print(readabledate)
    

результаты значения времени были все 00:00, хотя.

Как я могу получить правильное время от тех UNIX https://i.stack.imgur.com/khDmi.jpg

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Другой подход

>>> mytime =  1332288000
>>> import datetime as dt
>>> frmt_date = dt.datetime.utcfromtimestamp(mytime).strftime("%Y/%m/%d %H:%M")
>>> print(frmt_date)
2012/03/21 00:00
>>> mytime =  mytime + 10000
>>> frmt_date = dt.datetime.utcfromtimestamp(mytime).strftime("%Y/%m/%d %H:%M")
>>> print(frmt_date)
2012/03/21 02:46

Итак, ваши даты действительно были в 00:00

0 голосов
/ 18 ноября 2018

Все преобразования правильные.

Все метки времени оказались секундами с полуночи 01 января 1970 года, чьи mod (3600 * 24) равны 0, то есть все метки времени соответствуют полуночи некоторой даты в UTC.

Вы можете быстро подтвердить это без фактического преобразования в объекты даты и времени с помощью:

assert all(t % 86400 == 0 for t in timestamps) 
...