use*_*970 13 python time datetime date datetime-format
这些日期时间格式是什么?我需要将它们转换为相同的格式,以检查它们是否相同.这些只是两个来自不同的数据源,所以我需要找到一种方法来使它们具有相同的格式.有任何想法吗?
2013-07-12T07:00:00Z
2013-07-10T11:00:00.000Z
提前致谢
Sud*_*pta 20
额外的.000是微秒.
这会将格式的日期字符串转换为datetime对象.
import datetime
d1 = datetime.datetime.strptime("2013-07-12T07:00:00Z","%Y-%m-%dT%H:%M:%SZ")
d2 = datetime.datetime.strptime("2013-07-10T11:00:00.000Z","%Y-%m-%dT%H:%M:%S.%fZ")
Run Code Online (Sandbox Code Playgroud)
然后根据您的要求将它们转换为任何格式,方法是:
new_format = "%Y-%m-%d"
d1.strftime(new_format)
Run Code Online (Sandbox Code Playgroud)
也许使用 .isoformat()
ISO 8601 格式的字符串,YYYY-MM-DDTHH:MM:SS[.mmmmmm][+HH:MM]
>>> import datetime
>>> datetime.datetime.utcnow().isoformat() + "Z"
'2013-07-11T22:26:51.564000Z'
>>>
Run Code Online (Sandbox Code Playgroud)
Z 指定“zulu”时间或UTC。
您还可以通过应用适当的tzinfo对象使您的日期时间对象时区感知来添加时区组件。与tzinfo施加的方法将包括适当的UTC的输出偏移:.isoformat()
>>> d = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc)
>>> d.isoformat()
'2019-11-11T00:52:43.349356+00:00'
Run Code Online (Sandbox Code Playgroud)
您可以删除微秒的变化微秒重视到0:
>>> no_ms = d.replace(microsecond=0)
>>> no_ms.isoformat()
'2019-11-11T00:52:43+00:00'
Run Code Online (Sandbox Code Playgroud)
此外,从python 3.7 开始,该.fromisoformat()方法可用于将 iso 格式的日期时间字符串加载到 python 日期时间对象中:
>>> datetime.datetime.fromisoformat('2019-11-11T00:52:43+00:00')
datetime.datetime(2019, 11, 11, 0, 52, 43, tzinfo=datetime.timezone.utc)
Run Code Online (Sandbox Code Playgroud)
http://www.ietf.org/rfc/rfc3339.txt
小智 5
你可以尝试修剪字符串
data = "2019-10-22T00:00:00.000-05:00"
result1 = datetime.datetime.strptime(data[0:19],"%Y-%m-%dT%H:%M:%S")
result2 = datetime.datetime.strptime(data[0:23],"%Y-%m-%dT%H:%M:%S.%f")
result3 = datetime.datetime.strptime(data[0:9], "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)