5 python datetime tuples type-conversion timedelta
是否有一种线性方法可以将日期时间转换为简单元组
>>> from datetime import datetime, timedelta
>>> new_date = datetime. today() + timedelta(12)
>>> new_date
datetime.datetime(2020, 5, 26, 13, 31, 36, 838650)
Run Code Online (Sandbox Code Playgroud)
如何将 new_date 转换为元组类型。
这是我尝试过的
tuple(new_date)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
tuple(new_date)
TypeError: 'datetime.datetime' object is not iterable
Run Code Online (Sandbox Code Playgroud)
预期输出:
>> (2020, 5, 26, 13, 31, 36, 838650)
Run Code Online (Sandbox Code Playgroud)
如果您想“自定义”输出(例如包括微秒),您可以使用操作符模块中的 attrgetter 从日期时间对象中获取属性。
from datetime import datetime
from operator import attrgetter
attrs = ('year', 'month', 'day', 'hour', 'minute', 'second', 'microsecond')
d = datetime.now()
# datetime.datetime(2020, 5, 14, 12, 49, 35, 33067)
d_tuple = attrgetter(*attrs)(d)
# (2020, 5, 14, 12, 49, 35, 33067)
Run Code Online (Sandbox Code Playgroud)
否则,只需使用timetuple()其他答案中所示的(如果您可以在没有微秒的情况下生活,可能会更有效)。