我尝试用时区格式解析字符串到时间戳。
这是一个例子
"2016-02-18 16:13:07+09"
我想知道在 python中将此字符串格式解析为时间戳格式。
我该怎么做?
答案 0 :(得分:2)
UTC偏移格式是否为字符串+09或+0900?
如果您的字符串中的偏移量是0900,您可以使用下面的内容。如果您的问题中提到的UTC偏移量仅为+09,则可以使用00填充字符串并获取以下代码。
<强>代码:强>
import datetime
time="2016-02-18 16:13:07+0900"
new_time=datetime.datetime.strptime(time,"%Y-%m-%d %H:%M:%S%z")
print(new_time)
new_time_python=datetime.datetime.strftime(new_time,"%m-%d-%y")
print(new_time_python)
2016-02-18 16:13:07+09:00
02-18-16
答案 1 :(得分:1)
dateutil
可能适合您的目的地:
from dateutil.parser import parser
p = parser()
d = p.parse('2016-02-18 16:13:07+09'.decode('utf-8')) # must be unicode string
d
>>> datetime.datetime(2016, 2, 18, 16, 13, 7, tzinfo=tzoffset(None, 32400))
答案 2 :(得分:0)
如果可以将UTC偏移量指定为+HH
和+HHMM
格式,则可以使用str.ljust()
method来标准化输入时间字符串。然后你可以use .strptime()
to parse it:
#!/usr/bin/env python3
from datetime import datetime
time_string = "2016-02-18 16:13:07+09"
dt = datetime.strptime(time_string.ljust(24, "0"), "%Y-%m-%d %H:%M:%S%z")
# -> datetime.datetime(2016, 2, 18, 16, 13, 7,
# tzinfo=datetime.timezone(datetime.timedelta(0, 32400)))
如果您的Python版本不支持%z
,请参阅How to parse dates with -0400 timezone string in python?