21

我可能错过了一个明显的平台差异,我应该适应但我在尝试做时间格式(Python2.7)时得到了这个......

在 Linux 环境中:

>>> import time
>>> time.strftime("%a, %d-%b-%Y %T GMT", time.gmtime())
'Tue, 29-May-2012 21:42:04 GMT'

在 Windows 中:

>>> import time
>>> time.strftime("%a, %d-%b-%Y %T GMT", time.gmtime())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Invalid format string

从 time.gmtime() 返回的元组似乎是相同的,所以我不完全确定我需要更改什么。

4

3 回答 3

20

通常,您会发现 pythontime.strftime()支持与其运行的平台(或者更具体而言是该平台的 libc)相同的格式说明符集。但是,其中只有一部分是可移植的。有关列表,请参阅http://docs.python.org/library/time.html。引用文档:

某些平台可能支持其他指令,但只有此处列出的指令具有 ANSI C 标准化的含义。

在这种情况下,%T可以替换为%H:%M:%S

于 2012-05-29T21:51:05.607 回答
0

我没有看到Python 文档%T中列出的格式指令- 不能在 Windows 平台上使用/实现(我刚刚尝试使用 Python v2.7.3 和 3.2.3)

于 2012-05-29T21:53:45.650 回答
0

我发现我遇到了这个问题,因为 MacOS 支持"%D",我不得不将其替换"%m/%d/%Y"为跨平台。一般来说,组合“简单”格式的字符串%m似乎比使用“聚合”字符串如%Tor更安全%D

于 2016-09-14T14:39:04.887 回答