时间符号标准



我有以下脚本定义一个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()。假设我只有时间字符串本身。我怎么读?

我需要执行加法来获得马尼拉时间。读到这里,我应该做一个计算,然后写入

格林威治的12:52:06,我应该用+08:00来抵消。这是马尼拉的20:52:06

B。我就按字面意思写

马尼拉的12:52:06,和UTC的+08:00偏移。也就是格林威治的04:52:06

哪个是正确的?A还是B

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

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

注意:datetime.strptime不能与时区一起工作——你可以使用datetime.strftime%z格式代码,但不能使用strptime。如果您需要这样做,请使用dateutil,参见如何在python中使用-0400 timezone字符串解析日期?

相关内容

  • 没有找到相关文章

最新更新