python - 符合 ISO 8601 的日期时间,包含时间

标签 python datetime iso iso8601

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/

相关文章:

Python 3 Autoclicker 开/关热键

ruby-on-rails - Rails 如何计算3个日期之间的整数时差

linux - 从 .iso 修改 index.php

c# - 数据成员验证 - ISO 4217(货币)和 639-1(语言)

python - 属性错误 : module 'pandas' has no attribute 'core'

python - 基于抽象基类捕获异常

python - sklearn.linear_model.LassoLarsIC 提前停止

java - Jmeter BeanShell 断言解析并比较 json 中的 UTC 日期时间

c# - Entity Framework - SQL Server 2005 - IIS 服务器日期时间问题

c - __STDC_ISO_10646__ 的可能值