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