我有一些代码在同一个python版本的Ubuntu和MacOS编译器上莫名其妙地工作。欢迎任何解释或解决方法。
首先,在Ubuntu Python上进行设置。机器以UTC格式运行。在时间字符串中使用PST失败,但将PST更改为UTC可以正常工作。
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> date_str = 'Thu Jan 1 00:32:36 PST 2015'
>>> now = datetime.strptime(date_str, '%a %b %d %H:%M:%S %Z %Y')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data 'Thu Jan 1 00:32:36 PST 2015' does not match format '%a %b %d %H:%M:%S %Z %Y'
>>> date_str = 'Thu Jan 1 00:32:36 UTC 2015'
>>> now = datetime.strptime(date_str, '%a %b %d %H:%M:%S %Z %Y')
>>>
现在在MacOS上运行(在PDT中运行),python并不关心指定的时区,并且适用于任何时区:
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> date_str = 'Thu Jan 1 00:32:36 GMT 2015'
>>> now = datetime.strptime(date_str, '%a %b %d %H:%M:%S %Z %Y')
>>>
GCC的版本不同,python 2.7.3的日期戳也不同,但这似乎是非常简单的功能,不具备操作系统依赖性。
我看到像http://bugs.python.org/issue8957这样松散相关的bug。这是否更好地被问为python.org上的错误报告?
答案 0 :(得分:5)
文档说%Z is inherently platform specific:
对%Z指令的支持基于tzname中包含的值 以及日光是否真实。因此,它是特定于平台的 除了识别始终已知的UTC和GMT(并且是 被认为是非夏令时区。