1.time时间模块
1.1.获取当前时间戳
使用time模块中的time()函数可以获取当前时间的时间戳。当前的时间戳应为1970年1月1日到函数执行时的秒数值。例如,
import time # 导入time模块
t1 = time.time()
print(t1)
执行结果如下,
1582457981.234377
记得要导入time模块。
1.2.时间戳与时间元组的转换
1.2.1.时间戳转化为时间元组
时间戳可以转化为0时区的时间元组或者转化为当前时区的时间元组。
我们先使用gmtime()函数将时间戳转化为0时区的时间元组。
t2 = time.gmtime(t1)
print(t2)
执行结果如下,
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=11, tm_min=46, tm_sec=32, tm_wday=6, tm_yday=54, tm_isdst=0)
注意,由于当前时间的改变t1的值发生了变化。
因为我们所在的中国为东8区,所以我们不能直接使用t2的结果。所以,我们现在来用localtime()函数将当前时间戳转化为当前时区的时间元组。
t3 = time.localtime(t1)
print(t3)
执行结果如下,
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=19, tm_min=49, tm_sec=57, tm_wday=6, tm_yday=54, tm_isdst=0)
1.2.2.将时间元组转换为时间戳
我们可以使用mktime()函数将时间元组转化为时间戳。例如,
print(time.mktime(t3))
执行结果如下,
1582458724.0
1.3.时间元组与时间字符串的转换
1.3.1.将时间元组转化为时间字符串
我们需要使用使用strftime()函数将时间元组转化为时间字符串。
strftime()函数需要传入两个参数,第一个参数是我们想要的时间字符串格式,第二个参数是要转化的时间元组。
以下为时间字符串的格式,
例如,我们将t3时间元组转换为“ 年 月 日 时:分:秒”的格式,
str1 = time.strftime("%Y %m %d %H:%M:%S", t3)
print(str1)
执行结果如下,
2020 02 23 19:59:50
1.3.2.将时间字符串转换为时间元组
我们可以使用strptime()函数将时间字符串转换为时间元组。strptime()函数同样有两个函数,第一个函数时时间字符串,第二个参数是时间字符串对应的格式。
例如,我们将字符串"2020 02 23 20:03:37"转换为时间元组,
print(time.strptime("2020 02 23 20:03:37", "%Y %m %d %H:%M:%S"))
执行结果如下,
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=23, tm_hour=20, tm_min=3, tm_sec=37, tm_wday=6, tm_yday=54, tm_isdst=-1)
1.4.休眠
time模块中的sleep()函数可以使程序在执行到sleep()的时候暂停指定的秒数。
例如,我们来做一个10次的循环,并且每次循环都间隔2秒钟,
for i in range(10):
print(i)
time.sleep(2) # 休眠2秒钟
我们执行时会发现每次打印i之间会间隔2秒钟。
2.datetime模块
2.1.获取当前的时间和日期
使用datetime模块中的now()函数可以直接输出当前的时间和日期。
from datetime import datetime
dt1 = datetime.now()
print(dt1)
执行结果如下,
2020-02-23 20:14:15.662153
2.1.获取指定时间和日期
datetime()函数可以获取指定的时间和日期。datetime()函数最多输入7个参数,分别为年、月、日、时、分、秒、微秒。
例如,获取2020年2月23日,
dt2 = datetime(2020, 2, 23)
print(dt2)
执行结果如下,
2020-02-23 00:00:00
2.2.获取年、月、日、时、分、秒、微秒
我们来获取dt1的年、月、日、时、分、秒、微秒,
print(dt1.year) # 获取年
print(dt1.month) # 获取月
print(dt1.day) # 获取日
print(dt1.date()) # 获取年月日
print(dt1.time()) # 获取时分秒微秒
执行结果如下,
2020
2
23
2020-02-23
20:23:29.938045
2.3.将日期转换为字符串
我们使用strftime()函数将dt1转换为字符串,
print(dt1.strftime("%Y %m %d %H:%M:%S"))
datetime模块中的格式化标识符与time模块基本一致。
2.4.时间与时间戳的转换
我们可以使用timestamp()函数将时间转换为时间戳。例如,
ts1 = dt1.timestamp()
print(ts1)
执行结果如下,
1582460997.201557
2.5.时间加减
我们可以直接将两个日期相减得出间隔。例如,
td = dt1 - dt2
print(td)
执行结果如下,
20:36:13.495821
我们也可以从datatime中导入timedelta模块来进行计算。
timedelta()函数可以将某个日期赋给变量,并用来计算。例如,我们要计算dt2加上3天是什么日期,
from datetime import timedelta
td1 = timedelta(days=3)
dt3 = dt2 + td1
print(dt3)
执行结果如下,
2020-02-26 00:00:00