首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有时区信息的情况下,蟒mktime是如何工作的?

在没有时区信息的情况下,蟒mktime是如何工作的?
EN

Stack Overflow用户
提问于 2013-01-22 20:46:23
回答 2查看 207关注 0票数 0

我有工作密码。我的问题是为什么要这样做?

代码语言:javascript
复制
#"04/13/05 2:30pm EDT" <- original date string
from datetime import datetime, timedelta
from pytz import timezone
import pytz
import time

T= time.struct_time((2005,4,13,14,30,0,0,0,1))
t = time.mktime(T)

print(t)

这个指纹

代码语言:javascript
复制
1113417000, 

根据在线转换器,http://www.epochconverter.com/,打印

代码语言:javascript
复制
Your time zone: 4/13/2005 2:30:00 PM GMT-4

这是正确的。我的问题是,它怎么知道时间是在东部时间是GMT-4?最后一个9元组是"dst标志“,但是使用DST的时区很多。那么它如何检测出正确的时区呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 20:49:59

它通过stdlib C时间函数向操作系统询问这些信息。

引用模块文档

本模块中定义的大多数函数调用具有相同名称的platform C库函数。有时查阅平台文档可能会有所帮助,因为这些功能的语义因平台而异。

您可以将DST标志传入a -1以使库为您设置它,请参阅time.struct_time。在我的MacOSX10.7.5设置上,配置为欧洲/奥斯陆时区,这给我提供了如下信息:

代码语言:javascript
复制
>>> import time
>>> time.mktime((2005,4,13,14,30,0,0,0,-1))
1113395400.0

或者,正如时代转换器“翻译”的那样:

代码语言:javascript
复制
Your time zone: 4/13/2005 2:30:00 PM GMT+2
票数 2
EN

Stack Overflow用户

发布于 2016-12-28 12:11:10

根据文档,函数time.mktime(t)采用的是以本地时间表示的参数(struct_time),而不是UTC。本地时间是从您的操作系统中提取的。您可以看到本地DST时区,例如,time.tzname

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

https://stackoverflow.com/questions/14467697

复制
相关文章

相似问题

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