Python datetime.datetime.timetuple()方法
datetime
库是一个内置的 Python 库,它提供了许多实用工具,如类、方法和属性,用于处理日期、时间、日期和时间的结合(DateTime)、时区和 timedelta(时差)。
这个库有一个类,即datetime
,它简化了处理日期和时间的过程。这个类有多个类函数,允许程序员在字符串格式(如ISO、时间戳和序号)的帮助下制作datetime
对象。
每个datetime
对象都有几个实例方法,如date()
,time()
,timetz()
, 等等。其中一个方法是timetuple()
方法。
timetuple()
方法返回一个命名元组的对象time.struct_time
。struct_time
是datetime
模块中的又一个对象。
在这篇文章中,我们将通过一些相关的例子来详细介绍这个方法和这个对象。
语法
<datetime-object>.timetuple()
参数
timetuple()
方法不接受任何参数。
返回值
timetuple()
方法返回一个命名元组的对象time.struct_time
。由于它是一个命名元组的对象,它的值可以用索引和属性名称来访问。
它有以下属性。
索引 | 属性 | 数值 |
---|---|---|
0 |
tm_year |
任何有效的数字年份 |
1 |
tm_mon |
[1, 12] |
2 |
tm_mday |
[1, 31] |
3 |
tm_hour |
[0, 23] |
4 |
tm_min |
[0, 59] |
5 |
tm_sec |
[0, 59] |
6 |
tm_wday |
[0, 6] ,其中0 是指星期一 |
7 |
tm_yday |
[1, 366] |
8 |
tm_isdst |
0 ,1 , 或-1
|
– | tm_zone |
时区名称的缩略语 |
– | tm_gmtoff |
UTC以东的偏移量(秒)。 |
time.struct_time
对象由gmtime()
,localtime()
, 和strptime()
等方法返回。年月日或yday
,用以下指令计算。
yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1
根据timezone
对象上可用的dst()
方法,设置输出的tm_isdst
布尔标志。每个子类抽象的tzinfo
类都必须实现这个方法。
要了解关于dst()
方法的更多信息,以及如何确定其值,请参考这里的官方 Python 文档。
要了解命名元组time.struct_time
,请参考这里的官方 Python 文档。
示例代码:在Python中使用datetime.datetime.timetuple()
方法
import datetime
cet = datetime.timezone(datetime.timedelta(hours = 2), name = "CET")
dt = datetime.datetime(2022, 3, 25, 12, 33, 45, 234154, cet)
tt = dt.timetuple()
print("DateTime:", dt)
print(tt)
print("Year:", tt[0])
print("Month:", tt[1])
print("Day:", tt[2])
print("Hour:", tt.tm_hour)
print("Minutes:", tt.tm_min)
print("Seconds:", tt.tm_sec)
输出:
DateTime: 2022-03-25 12:33:45.234154+02:00
time.struct_time(
tm_year=2022,
tm_mon=3,
tm_mday=25,
tm_hour=12,
tm_min=33,
tm_sec=45,
tm_wday=4,
tm_yday=84,
tm_isdst=-1
)
Year: 2022
Month: 3
Day: 25
Hour: 12
Minutes: 33
Seconds: 45
- 上面的Python代码首先创建了一个时区感知的
datetime
对象,时区设置为CET或中欧时间。 - 接下来,它使用
timetuple()
实例方法创建一个time.struct_time
对象并打印出来。 - 此外,各种属性,如年、月、小时和秒,都使用索引和属性名称进行访问。
注意,如果使用无效的索引和错误的属性名访问属性,Python解释器会分别引发一个IndexError
和一个AttributeError
异常。