首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python3 TimeStamp提前2小时

python3 TimeStamp提前2小时
EN

Stack Overflow用户
提问于 2017-04-11 14:38:48
回答 3查看 829关注 0票数 1

我是python的新手,但在使用时间戳、utc和unixtime时遇到了最大的困难。

此示例的时间间隔为2小时:

代码语言:javascript
复制
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 tool

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

EN

回答 3

Stack Overflow用户

发布于 2017-04-11 14:53:05

我相信这一切都像设计的那样工作。

首先你要做的是:

代码语言:javascript
复制
today = datetime.datetime.utcnow()

这是在UTC,没有夏令时调整,没有当地时区调整。

然后你就可以做到:

代码语言:javascript
复制
today.timestamp()

根据docs的说法,这是当地时间,因此它包括夏令时和当地时区的调整。

这就解释了两个小时的差异。

您可能需要研究一下today - datetime.timedelta(days=2)

票数 1
EN

Stack Overflow用户

发布于 2017-04-11 15:22:58

这解决了我的问题

代码语言:javascript
复制
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)))
票数 1
EN

Stack Overflow用户

发布于 2017-04-11 16:37:42

你也可以使用下面的代码

代码语言:javascript
复制
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'))函数,它会将纪元时间转换为可读形式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43338459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档