如何从Unix时间正确设置日期时间值?

时间:2018-11-18 16:56:41

标签: python datetime unix-timestamp

UNIX时间戳

  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 :(得分:3)

所有转换都是正确的。

所有时间戳都是从1970年1月1日午夜开始的秒,其mod (3600 * 24)为0,即所有时间戳都对应于UTC中某个日期的午夜。

您可以使用以下方法快速确认这一点,而无需实际转换为日期时间对象:

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

答案 1 :(得分:0)

另一种方法

>>> 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