时间是一条逆流的河。
Ax Date & Time | 时日
Python 程序可以通过多种方式处理日期和时间。在日期格式之间转换是计算机的一项常见工作。 Python 的时间和日历模块有助于跟踪日期和时间。
Tick
时间间隔是以秒为单位的浮点数。从 1970 年 1 月 1 日(纪元)00:00:00 开始,特定的时间点以秒表示。 Python 中有一个流行的time模块,它提供了处理时间和在表示之间转换的函数。函数 time.time() 返回自 1970 年 1 月 1 日(纪元)00:00:00 以来的当前系统时间(以刻度为单位)。
例
#!/usr/bin/python
import time
ticks = time.time()
print("Number of ticks since 12:00am, January 1, 1970:", ticks)
执行
Number of ticks since 12:00am, January 1, 1970: 1655858083.9189656
用刻度来计算日期很容易。 但是,纪元之前的日期不能用这种形式表示。 遥远未来的日期也不能用这种方式表示——截止点是UNIX和Windows的2038年的某个时候。
时间元组
许多Python的time函数将time处理为9个数字的元组,如下所示
Index | Field | Values |
---|---|---|
0 | 4-digit year | 2008 |
1 | Month | 1 to 12 |
2 | Day | 1 to 31 |
3 | Hour | 0 to 23 |
4 | Minute | 0 to 59 |
5 | Second | 0 to 61 (60 or 61 are leap-seconds) |
6 | Day of Week | 0 to 6 (0 is Monday) |
7 | Day of year | 1 to 366 (Julian day) |
8 | Daylight savings | -1, 0, 1, -1 means library determines DST |
上面的元组等价于struct_time结构。该结构具有如下属性
Index | Attributes | Values |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 to 12 |
2 | tm_mday | 1 to 31 |
3 | tm_hour | 0 to 23 |
4 | tm_min | 0 to 59 |
5 | tm_sec | 0 to 61 (60 or 61 are leap-seconds) |
6 | tm_wday | 0 to 6 (0 is Monday) |
7 | tm_yday | 1 to 366 (Julian day) |
8 | tm_isdst | -1, 0, 1, -1 means library determines DST |
获取当前时间
要将时间瞬间从epoch浮点值起的一秒转换为时间元组,请将该浮点值传递给一个函数(例如,localtime),该函数将返回一个包含所有9个有效项的时间元组。
#!/usr/bin/python
import time
localtime = time.localtime(time.time())
print("Local current time :", localtime)
执行
Local current time : time.struct_time(tm_year=2022, tm_mon=6, tm_mday=22, tm_hour=9, tm_min=51, tm_sec=12, tm_wday=2, tm_yday=173, tm_isdst=0)
格式化时间
您可以根据需要格式化任何时间,但是将时间格式化为可读格式的简单方法是asctime()
#!/usr/bin/python
import time;
localtime = time.asctime( time.localtime(time.time()) )
print("Local current time :", localtime)
执行
Local current time : Wed Jun 22 09:56:06 2022
获取某月的日历
日历模块提供了多种使用年历和月历的方法。在这里,我们打印给定月份的日历(2008 年 1 月)
#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print("Here is the calendar:")
print cal
执行
January 2008
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
时间模块
Python中有一个流行的时间模块,它提供了处理时间和在表示之间转换的函数。
说明文档:https://docs.python.org/3.9/library/time.html
日历模块
calendar模块提供了与日历相关的函数,包括打印给定月份或年份的文本日历的函数。
默认情况下,日历将周一作为一周的第一天,周日作为一周的最后一天。要改变这一点,调用calendar.setfirstweekday()函数。
说明文档:https://docs.python.org/3.9/library/calendar.html
其它模块
关于时间的模块有很多,等待着你去发掘。