Python程序可以通过多种方式处理日期和时间。日期格式之间的转换是计算机常见问题。Python的时间(time)和日历(calendar)模块可用于跟踪日期和时间。
一些常用代码示例
- 获取当前时间和日期,如:2018-08-18 12:12:00
- 计算两个日期相差天数
- 计算程序运行的时间
#!/usr/bin/python3 #coding=utf-8 import time import datetime starttime = datetime.datetime.now() time.sleep(5) endtime = datetime.datetime.now() print ((endtime - starttime).seconds )
- 计算十天之后的日期时间
#!/usr/bin/python3 #coding=utf-8 import time import datetime d1 = datetime.datetime.now() d3 = d1 + datetime.timedelta(days =10) print (str(d3)) print (d3.ctime())
- 获取两个日期时间的时间差
t = (datetime.datetime(2019,1,13,12,0,0) - datetime.datetime.now()).total_seconds() print ("t = ", t) ## 输出结果 t = 49367780.076406
Python中有提供与日期和时间相关的4个模块。它们分别是 -
1. 时间间隔
时间间隔是以秒为单位的浮点数。从1970年1月1日上午12:00(epoch),这是一种时间的特殊时刻表示。
在Python中,当前时刻与上述特殊的某个时间点之间以秒为单位的时间。这个时间段叫做Ticks。
time模块中的time()函数返回从1970年1月1日上午12点开始的秒数。
# Import time module. import time; # Seconds ticks = time.time() print ("Number of ticks since 12:00am, January 1, 1970: ", ticks)
执行上面代码,得到以下结果 -
Number of ticks since 12:00am, January 1, 1970: 1497970093.6243818
但是,这个形式不能表示在时代(1970年1月1日上午12:00)之前的日期。在未来的日子也不能以这种方式表示 - 截止点是在2038年的UNIX和Windows的某个时刻。
2. 什么是TimeTuple?
许多Python时间函数将时间处理为9个数字的元组,如下所示:
一个示例
import time print (time.localtime());
这将产生如下结果:
time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9,
tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)
上面的元组相当于struct_time结构。此结构具有以下属性 -
能用图片说明白的尽量用图片说明 -
2.1.获取当前时间
要将从时间浮点值开始的秒数瞬间转换为时间序列,将浮点值传递给返回具有所有有效九个项目的时间元组的函数(例如本地时间)。
#!/usr/bin/python3 import time localtime = time.localtime(time.time()) print ("Local current time :", localtime) # 当前时间 curtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print (curtime)
执行上面代码,这将产生如下结果 -
Local current time : time.struct_time(tm_year=2017, tm_mon=6, tm_mday=20, tm_hour=23, tm_min=9, tm_sec=36, tm_wday=1, tm_yday=171, tm_isdst=0) Curtime is => 2017-06-20 23:09:36
2.2.获取格式化时间
可以根据需要格式化任何时间,但也可使用可读格式获取时间的简单方法是 - asctime() -
#!/usr/bin/python3 import time localtime = time.asctime( time.localtime(time.time()) ) print ("Local current time :", localtime)
执行上面代码,这将产生如下结果 -
Local current time : Mon Feb 15 10:32:13 2018
2.3.获取一个月的日历
calendar模块提供了广泛的方法来显示年历和月度日历。在这里,将打印一个给定月份的日历(2021年11月) -
#!/usr/bin/python3 import calendar cal = calendar.month(2021, 11) print ("Here is the calendar:") print (cal)
执行上面代码后,将输出以下结果 -
November 2021 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
3.时间模块
Python中有一个受欢迎的时间(time)模块,它提供了处理时间和表示之间转换的功能。以下是所有时间(time)可用方法的列表。
时间(time)模块有两个重要的属性可用。它们是 -
4.日历模块
calendar模块提供与日历相关的功能,包括为给定的月份或年份打印文本日历的功能。
默认情况下,日历将星期一作为一周的第一天,将星期日作为最后一天。如果想要更改这个,可调用calendar.setfirstweekday()函数设置修改。
以下是calendar模块可用的功能函数列表 -
5.其他模块和功能
如果您有兴趣,那么可以在Python中找到其他重要的模块和功能列表,其中包含日期和时间。以下列出其它有用的模块 -
- datetime模块
- pytz模块
- dateutil模块
私信回复“资料”获得相关python学习资料,更有机会和it大佬成为朋友,期待你的到来。