我正在解析从iOS Health App导出的xml文件。开始时间的记录具有以下格式:
@startDate:20151104101700-0800
@endDate:20151104111700-0800
...
@startDate:20151002151700-0800
@endDate:20151003151700-0800
我只是想知道该部分是什么' 15170-0800'代表。有人可以帮忙吗?
答案 0 :(得分:7)
20151002151700-0800
的格式为CCYYMMDDHHMMSS-TZ
。
因此,问题的151700
部分是时间,以小时分秒为单位。
之后的内容是+或 - ,以及您从UTC偏移了多少小时和分钟,因此-0800
将是UTC-8时区。
答案 1 :(得分:1)
它看起来不像标准时间格式(例如rfc 3339)或Date Formatter的默认时间格式,但无论如何都很容易解析。
时间格式为%Y%m%d%H%M%S%z
:
>>> from datetime import datetime
>>> datetime.strptime("20151104101700-0800", "%Y%m%d%H%M%S%z")
datetime.datetime(2015, 11, 4, 10, 17, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600)))
注意:它与@Christian Witts's answer不同(-
是数字utc偏移的一部分)。
不要在编程上下文中使用标签UTC-8
; it may be ambiguous。如果您不知道时区名称,例如America/Los_Angeles
;只是数字偏移(-0800
)不那么模糊。