- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我的问题:我需要将一个UTC时间元组转换为一个UTC时间戳。但我有些困惑。
首先一点信息:time.mktime(tuple)
:此函数始终以本地时间返回时间戳。
这是localtime()的反函数。它的参数是结构时间或完整的9元组,用本地时间而不是UTC表示时间。calendar.timegm(tuple)
:这将从提供的时间元组返回UTC时间戳
采用时间模块中的gmtime()函数返回的时间元组,并返回相应的unix时间戳值。实际上,time.gmtime()和timegm()是彼此的倒数。
现在让我们做一个测试:
>>> from datetime import datetime
>>> import time
>>> import calendar as cal
>>> utc_now = datetime.utcnow()
>>> now = datetime.now()
>>> utc_now
datetime.datetime(2013, 3, 16, 9, 17, 22, 489225)
>>> now
datetime.datetime(2013, 3, 16, 5, 17, 29, 736903)
>>> time.mktime(datetime.timetuple(utc_now)), time.mktime(datetime.timetuple(now))
(1363439842.0, 1363425449.0)
>>> cal.timegm(datetime.timetuple(utc_now)), cal.timegm(datetime.timetuple(now))
(1363425442, 1363411049)
datetime.utcnow()
或
datetime.now()
得到的是“幼稚”的对象。这意味着返回的
datetime
对象无论如何都不会提到您的本地时间或UTC时间——它只是表示“某个时间”。它只封装日期和时间信息(年、月、日、小时、分钟、秒等)。您有责任将其与本地或UTC的概念联系起来。
datetime.now()
函数返回一个“some time”(某个时间)等于当前时间,
datetime.utcnow()
函数返回“some time”(某个时间),即格林威治英格兰的当前时间(即UTC)。
January 1 1970, 00:00:00
。
0
但纽约时间
Jan 1, 1970, 00:00:00
时,时间戳约为(5*60*60)。
>>> tt = datetime.timetuple(datetime(1970, 1, 1, 0, 0, 0))
>>> cal.timegm(tt)
0
Jan 1, 1970, 00:00:00
的相同“某个时间”值具有不同的时间戳。因此,当你谈论时间戳时,你还需要说“什么位置”与时间戳相关,以及该位置向东或向西与格林威治英格兰相关的程度。该位置表示为“时区”。
Jan 1, 1970, 00:00:00
值,它转换为:
X
时间戳(UTC)
Y
秒数必须经过一段时间才能成为您所在位置的当前时间,
Z
秒数必须经过一段时间才能使英格兰格林威治的当前时间成为“一段时间”。
Y
和
Z
。这需要一个时间元组,这只是“一段时间”的另一种表示。请记住,我们给他们传递的是一段天真的时光,没有任何关于当地或UTC的概念。
mktime
是一个时间元组,表示一个幼稚的“some time”。然后
timegm
将返回必须经过的秒数,以便您的本地当前时间成为“某个时间”,并且
X
将返回使英格兰格林威治的当前时间等于“某个时间”所需的秒数。
mktime(X)
和
timegm(X)
表示幼稚的“某个时间”,当我们将这些“某个时间”值输入到
now
和
utc_now
中时,它们只返回相应位置(您的位置和格林威治英格兰)必须经过的秒数,以使其当前时间为“某个时间”。
cal.timegm(datetime.timetuple(utc_now))
最佳答案
实际上只有三种不同的价值观。这两个值:
1363425449.0 (time.mktime(datetime.timetuple(now))
1363425442 (cal.timegm(datetime.timetuple(utc_now)))
>>> utc_now
datetime.datetime(2013, 3, 16, 9, 17, 22, 489225)
>>> now
datetime.datetime(2013, 3, 16, 5, 17, 29, 736903)
time.mktime
,使用本地值而不是UTC值调用了
cal.timegm
。文档清楚地说明了期望值-因此请确保只使用适当的值。你基本上可以看到你的本地时间偏移(4小时,从它的外观上看)是在不应该应用的时候应用的(根据错误所在的不同方向)。
关于python - Python:将UTC时间元组转换为UTC时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15447632/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!