import datetime, time
# Calculate the offset taking into account daylight saving time
utc_offset_sec = time.altzone if time.localtime().tm_isdst else time.timezone
utc_offset = datetime.timedelta(seconds=-utc_offset_sec)
datetime.datetime.now().replace(tzinfo=datetime.timezone(offset=utc_offset)).isoformat()
下面是我用来转换为XSD datetime格式的内容:
我在寻找XSD日期时间格式(
xs:dateTime
)时遇到了这个问题。我需要从isoformat
中删除微秒。ISO 8601时间表示法
国际标准ISO 8601描述了日期和时间的字符串表示。这种格式的两个简单示例是
(两者都代表2010年12月16日),但格式也允许亚秒分辨率时间和指定时区。这种格式当然不是特定于Python的,但它适合以可移植的格式存储日期和时间。有关此格式的详细信息可以在Markus Kuhn entry中找到。
我建议使用此格式将时间存储在文件中。
获取此表示中当前时间的一种方法是使用Python标准库中时间模块中的strftime:
您可以使用datetime类的strTime构造函数:
最强大的是Egenix mxDateTime模块:
参考资料
The Python time module documentation
The Python datetime class documentation
The Egenix mxDateTime class
符合ISO 8601:
UTC到ISO 8601:
本地到ISO 8601,无微秒:
UTC到ISO 8601,带时区信息(Python 3):
UTC到ISO 8601,本地时区信息不带微秒(Python 3):
本地到ISO 8601,带时区信息(Python 3):
对于Python 2,请参见并使用pytz。
相关问题 更多 >
编程相关推荐