时区偏移量的表达式-澄清



我目前正在做的事情需要为世界各地的用户提供本地化时间。所有的日期时间都存储为UTC,所以转换它们很容易,我们有一个已知的,安全的,参考点,等等。

然而,偏移量的表达方式让我一时摸不着头脑。

>>> timezone.now()  # get the UTC-stamped server time as an example
datetime.datetime(2013, 5, 21, 16, 37, 54, 62598, tzinfo=<UTC>)
>>> eastern = pytz.timezone('US/Eastern')  # localise this to US/Eastern
>>> utc_dt.astimezone(eastern)
datetime.datetime(2013, 5, 21, 12, 37, 54, 62598,   
    tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>) 

(这是我在datetime输出中的换行符,只是为了更容易发现我正在讨论的位)

偏移量的表达式似乎有点过头了。而不是简单地说它是UTC的-4h偏移,它看起来像是在说- 1天加上20:00小时。对吗?

您看到的是pytz时区类的repr,其中包括在实际生活中使用它时应该无关紧要的实现细节。如果你对相同的对象使用print,你会看到不同的东西:

>>> print utc_dt.astimezone(eastern)
2013-05-21 15:00:27.648000-04:00

相关内容

  • 没有找到相关文章

最新更新