gpt4 book ai didi

python - 时间符号标准

转载 作者:行者123 更新时间:2023-11-28 22:04:39 25 4
gpt4 key购买 nike

我有以下定义 tzinfo 对象的脚本:

import time
from datetime import datetime, timedelta, tzinfo

class ManilaTime(tzinfo):
def utcoffset(self, dt):
return timedelta(hours=8)

def tzname(self, dt):
return "Manila"

manila = ManilaTime()

现在我要说

t = datetime(tzinfo=manila, *time.gmtime()[:-3])
print t

这给了我

2011-07-24 12:52:06+08:00

问题12:52:06+08:00 是什么意思?我想学习如何根据标准读取时间信息,其中包括 UTC 偏移量。请忽略我使用了 time.gmtime()。假设我只得到时间字符串本身。如何阅读?

A. 我需要执行加法以获得马尼拉时间。看完这个,我应该做一个计算,我会说

It's 12:52:06 in Greenwich, which I should offset by +08:00. Meaning, it is 20:52:06 in Manila.

B.我会从表面上看

It's 12:52:06 in Manila, and it's offset from UTC by +08:00. Meaning, it is 04:52:06 in Greenwich.

哪个是正确的? A 还是 B

最佳答案

12:52:06+08:00 通常表示它是比 UTC 早 8 小时的时区中的给定时间。所以 B 是正确的。

但是,您错误地生成了时间字符串time.gmtime() 只返回一个时间,没有任何时区,您告诉 datetime() 该时间在马尼拉时区。因此对于这种特殊情况,A 是正确的。

注意:datetime.strptime 不适用于时区 -- 您可以为 datetime.strftime 使用 %z 格式代码,但不是 strptime。如果您需要这样做,请使用 dateutil,请参阅 How to parse dates with -0400 timezone string in python?

关于python - 时间符号标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com