datetime.isoformat()
返回“2018-03-24T20:25:08.698812”,datetime.isocalendar()
返回“(2018, 12, 6)”
但我需要的是 ISO 格式的日期和时间,而且还需要 ISO 日历,如 '2018-12-06T20:25:08.698812'
如何获取 ISO 格式和 ISO 日历的日期时间?
d = datetime.datetime.now()
print(d.isoformat())
print(d.isocalendar())
最佳答案
您可以构造如下格式:
代码:
def isocalendar_str(a_datetime):
iso = a_datetime.isoformat()
iso_cal = a_datetime.isocalendar()
return "{:0>4}-{:0>2}-{:0>2}".format(*iso_cal) + iso[10:]
如果您使用的是 Python 3.5+,您可以使用以下方法进行简化:
def isocalendar_str(a_datetime):
iso = a_datetime.isoformat()
iso_cal = a_datetime.isocalendar()
return "{:0>4}-{:0>2}-{:0>2}{}".format(*iso_cal, iso[10:])
参见PEP 448了解新的拆包功能的详细信息。
测试代码:
d = dt.datetime.now()
print(d.isoformat())
print(d.isocalendar())
print(isocalendar_str(dt.datetime.now()))
结果:
2018-03-24T19:03:05.097419
(2018, 12, 6)
2018-12-06T19:03:05.097419
关于python - 符合 ISO 8601 的日期时间,包含时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49471761/