使用 strptime() 解析“04.05.2003 00:00:00.000 GMT+0100”的正确格式字符串是什么?
What is the correct format string to parse "04.05.2003 00:00:00.000 GMT+0100" with strptime()?
我正在尝试将一个奇怪的格式字符串时间戳转换为日期时间。这是它的样子:
04.05.2003 00:00:00.000 GMT+0100
我正在尝试类似的方法,但它不匹配。我想我只是错过了结尾处 GMT 偏移量的表达式。
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y HH:MM.SS.sss')
当然会吐出格式错误
ValueError: time data '04.05.2003 00:00:00.000 GMT+0100' does not match format '%d.%m.%Y HH:MM.SS.sss'
我需要在这里使用的格式字符串是什么?
使用%Z%z
匹配时区。您使用了一些奇怪的格式来匹配时间,%H:%M:%S.%f
应该适合那个
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %H:%M:%S.%f %Z%z')
# Outputs: datetime.datetime(2003, 5, 4, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'GMT'))
您需要时间格式运算符,而不是 HH:MM:SS
,并且您需要时区格式运算符。时区偏移量的运算符是 %z
.
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %h:%M:%s.%f GMT%z')
这应该有效:
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %H:%M:%S.%f GMT%z')
我正在尝试将一个奇怪的格式字符串时间戳转换为日期时间。这是它的样子:
04.05.2003 00:00:00.000 GMT+0100
我正在尝试类似的方法,但它不匹配。我想我只是错过了结尾处 GMT 偏移量的表达式。
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y HH:MM.SS.sss')
当然会吐出格式错误
ValueError: time data '04.05.2003 00:00:00.000 GMT+0100' does not match format '%d.%m.%Y HH:MM.SS.sss'
我需要在这里使用的格式字符串是什么?
使用%Z%z
匹配时区。您使用了一些奇怪的格式来匹配时间,%H:%M:%S.%f
应该适合那个
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %H:%M:%S.%f %Z%z')
# Outputs: datetime.datetime(2003, 5, 4, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'GMT'))
您需要时间格式运算符,而不是 HH:MM:SS
,并且您需要时区格式运算符。时区偏移量的运算符是 %z
.
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %h:%M:%s.%f GMT%z')
这应该有效:
datetime.datetime.strptime('04.05.2003 00:00:00.000 GMT+0100','%d.%m.%Y %H:%M:%S.%f GMT%z')