Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
time 高精度时钟
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳,
import time
print(time.time())
输出,输出单位为秒
1625538265.310476
标准的time.time()函数提供次秒精度,该精度因平台而异。对于Linux和Mac,精度为+-1微秒或0.001毫秒。由于进程中断导致的时钟实现问题,Windows上的python使用+-16毫秒的精度。如果要测量执行时间,timeit模块可以提供更高的分辨率。
Python 的时钟是要比JS的精确的,JS时钟的精确度只到毫秒。比如:
Date.now() //1625540167489
当前时间与时间元组
可以将时间戳黑的成时间元组:
import time
localtime = time.localtime(time.time())
print(localtime)
输出:
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=6, tm_hour=10, tm_min=24, tm_sec=25, tm_wday=1, tm_yday=187, tm_isdst=0)
time.localtime 返回的是时间元组,属性结构如下:
属性 | 值 |
---|---|
tm_year | 2008 |
tm_mon | 1 到 12 |
tm_mday | 1 到 31 |
tm_hour | 0 到 23 |
tm_min | 0 到 59 |
tm_sec | 0 到 61 (60或61 是闰秒) |
tm_wday | 0到6 (0是周一) |
tm_yday | 1 到 366(儒略历) |
tm_isdst | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
显示本地时间
最简单的获取可读的时间模式的函数是asctime(),将时间日期格式化输出:
import time
localtime = time.asctime( time.localtime(time.time()) )
print(localtime)
输出:
Tue Jul 6 10:24:25 2021
格式化时间
我们可以使用 time 模块的 strftime 方法来格式化日期,:
import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
输出:
2021-07-06 11:17:45
Tue Jul 06 11:17:45 2021
时间日期格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00-59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
获取日历
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
import calendar
cal = calendar.month(2022, 1)
print(cal)
输出:
January 2022
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