格式化日期时间和 return 日期时间 python(没有中间字符串步骤)
Format datetime and return datetime python (no intermediary string step)
我有一个日期时间数据类型,我想格式化 将其保留为日期时间数据类型,但如果我这样做 datetime-> string-> datetime
并且我可以找到该怎么做想直接做datetime->datetime
。这可能吗?
这是我的代码:
from datetime import datetime
start_date = datetime.now()
res = datetime.strptime(start_date.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), "%Y-%m-%dT%H:%M:%S.%fZ")
您可以使用 datetime 的 isoformat 方法获得一些便利:
from datetime import datetime
# input date/time as string
s = "2020-01-01T00:00:00.000+00:00Z"
# to datetime object
# we can strip Z (zulu) since Python treats +00:00 as UTC already
dtobj = datetime.fromisoformat(s.strip('Z'))
print(repr(dtobj))
# datetime.datetime(2020, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)
# back to string, format as input
# add the Z since this is not supported in Python by default
s_out = dtobj.isoformat(timespec='milliseconds') + 'Z'
print(s_out)
# 2020-01-01T00:00:00.000+00:00Z
我有一个日期时间数据类型,我想格式化 将其保留为日期时间数据类型,但如果我这样做 datetime-> string-> datetime
并且我可以找到该怎么做想直接做datetime->datetime
。这可能吗?
这是我的代码:
from datetime import datetime
start_date = datetime.now()
res = datetime.strptime(start_date.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), "%Y-%m-%dT%H:%M:%S.%fZ")
您可以使用 datetime 的 isoformat 方法获得一些便利:
from datetime import datetime
# input date/time as string
s = "2020-01-01T00:00:00.000+00:00Z"
# to datetime object
# we can strip Z (zulu) since Python treats +00:00 as UTC already
dtobj = datetime.fromisoformat(s.strip('Z'))
print(repr(dtobj))
# datetime.datetime(2020, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)
# back to string, format as input
# add the Z since this is not supported in Python by default
s_out = dtobj.isoformat(timespec='milliseconds') + 'Z'
print(s_out)
# 2020-01-01T00:00:00.000+00:00Z