在python中将datetime类型转换为元组

在python中将datetime类型转换为元组,python,datetime,type-conversion,tuples,timedelta,Python,Datetime,Type Conversion,Tuples,Timedelta,是否有任何一种线性方法可以将datetime转换为简单元组 >>> from datetime import datetime, timedelta >>> new_date = datetime. today() + timedelta(12) >>> new_date datetime.datetime(2020, 5, 26, 13, 31, 36, 838650) 如何将新日期转换为元组类型 这就是我尝试过的 tuple(new_d

是否有任何一种线性方法可以将datetime转换为简单元组

>>> from datetime import datetime, timedelta
>>> new_date = datetime. today() + timedelta(12)
>>> new_date
datetime.datetime(2020, 5, 26, 13, 31, 36, 838650)
如何将新日期转换为元组类型

这就是我尝试过的

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

有一个
timetuple
可以使用

>>> new_date.timetuple()
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=26, tm_hour=11, tm_min=15, tm_sec=30, tm_wday=1, tm_yday=147, tm_isdst=-1)
>>> tuple(new_date.timetuple())
(2020, 5, 26, 11, 15, 30, 1, 147, -1)

实际上,您不需要将其转换为元组,以上只是为了说明一点。您可以在使用普通元组的地方使用它。

您可以使用
时间元组

>>> new_date.timetuple()
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=26, tm_hour=11, tm_min=15, tm_sec=30, tm_wday=1, tm_yday=147, tm_isdst=-1)
>>> tuple(new_date.timetuple())
(2020, 5, 26, 11, 15, 30, 1, 147, -1)

实际上,您不需要将其转换为元组,以上只是为了说明一点。您可以在使用普通元组的地方使用它。

请使用
timetuple()
utctimetuple()
进行转换:

>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2020, 5, 14, 17, 18, 39, 958430)
>>> dt.timetuple()
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=14, tm_hour=17, tm_min=18, tm_sec=39, tm_wday=3, tm_yday=135, tm_isdst=-1)
>>> 

请使用
timetuple()
utctimetuple()
进行转换:

>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2020, 5, 14, 17, 18, 39, 958430)
>>> dt.timetuple()
time.struct_time(tm_year=2020, tm_mon=5, tm_mday=14, tm_hour=17, tm_min=18, tm_sec=39, tm_wday=3, tm_yday=135, tm_isdst=-1)
>>> 
如果要“自定义”输出(例如,包括微秒),可以使用操作员模块中的attrgetter从datetime对象获取属性。否则,只需使用其他答案中所示的
timetuple()
(如果没有微秒,可能会更有效)

如果要“自定义”输出(例如,包括微秒),可以使用操作员模块中的attrgetter从datetime对象获取属性。否则,只需使用其他答案中所示的
timetuple()
(如果没有微秒,可能会更有效)