Python中的Python时间格式不同

时间:2012-05-29 21:46:59

标签: python cross-platform

我可能错过了一个明显的平台差异,我应该适应但是我在尝试做时间格式时会得到这个(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()返回的元组看起来是一样的,所以我不完全确定我需要改变什么。

3 个答案:

答案 0 :(得分:14)

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

  

某些平台可能支持其他指令,但仅限于此   这里列出的那些具有ANSI C标准化的含义。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我发现我遇到了这个问题,因为MacOS支持"%D",我不得不用"%m/%d/%Y"替换它以使其跨平台。通常,将%m等“简单”格式字符串组合起来比使用%T%D等“汇总”字符串更安全。