我是python的新手,但在使用时间戳、utc和unixtime时遇到了最大的困难。
此示例的时间间隔为2小时:
sec_in_day=86400
today = datetime.datetime.utcnow()
print(today)
two_days_ago=today.timestamp()-(sec_in_day*2);
print("Two days ago (unix)",two_days_ago)
# Convert timestamp via 3rd party
tool:http://www.onlineconversion.com/unix_time.htm
#generated unix-timestamp is 2 hours early according to 3rd party tool2017-04-11 06:36:49.414133
两天前(unix) 1491712609.414133
通过在线工具转换1491712609.414133可以让我
Sun,09 Apr 2017 04:36:49 GMT
我期待着Sun,09 Apr 2017 06:36:49 GMT
发布于 2017-04-11 14:53:05
我相信这一切都像设计的那样工作。
首先你要做的是:
today = datetime.datetime.utcnow()这是在UTC,没有夏令时调整,没有当地时区调整。
然后你就可以做到:
today.timestamp()根据docs的说法,这是当地时间,因此它包括夏令时和当地时区的调整。
这就解释了两个小时的差异。
您可能需要研究一下today - datetime.timedelta(days=2)
发布于 2017-04-11 15:22:58
这解决了我的问题
sec_in_day=86400
today = datetime.datetime.utcnow()
timestamp = today.replace(tzinfo=timezone.utc).timestamp()
print("Today",today)
print("Today-Re", today.replace(tzinfo=timezone.utc))
print("TS",timestamp)
print("TS#2",(timestamp-(sec_in_day*2)))发布于 2017-04-11 16:37:42
你也可以使用下面的代码
sec_in_day=86400
today = datetime.datetime.utcnow()
print(today)
two_days_ago=today.timestamp()-(sec_in_day*2);
print("Two days ago (unix): ",datetime.datetime.fromtimestamp(two_days_ago).strftime('%Y-%m-%d %H:%M:%S.%f'))在这里,我使用了fromtimestamp(two_days_ago).strftime('%Y-%m-%d %H:%M:%S.%f'))函数,它会将纪元时间转换为可读形式。
https://stackoverflow.com/questions/43338459
复制相似问题