time模块是python专门用来处理时间的内建库。
下面我们来记录一些基本使用方法。
ps: 用到了一些概念,比如unix时间戳,感兴趣的同学自行百度。
下文参考他人博客内容,传送门
time.time()
time.time()函数获取的是Unix时间戳。
返回的是一个float类型的数值。
import time
t1 = time.time()
print(t1, type(t1))
image.png
time.struct_time()
在python中的time模块中定义了一个叫struct_time的元组,是用来构建时间对象的。
struct_time元组共9个元素组成,如下图:
image.png
time.localtime(second=None)
这个函数可以接受一个unix时间戳,然后转换为struct_time。
如果不传入second参数,则会返回当前时间的时间戳的struct_time对象
t1 = time.localtime()
print(t1, type(t1))
image.png
再试试传入当前时间的时间戳,是否能得到上面的struct_time呢?
t1 = time.time()
print("Unix timestamp:", t1)
# 由于时间戳t1拿到的是一个float类型
# struct_time接受的是一个11位的数字字符串,刚好是小数点前面的内容
# 所以我们需要去掉小数点以及后面的内容
struct_t1 = int(t1)
struct_time = time.localtime(struct_t1)
print(struct_time, type(struct_time))
t2 = time.localtime()
print(t2, type(t2))
image.png
和我们预期的结果一致。
time.gmtime(second=None)
和localtime函数类似,默认情况gmtime函数获取当前时间的utc时间。
返回当前时间的utc时间的struct_time对象。
也可以传入任意的unix时间戳,来得到utc时间。
t3 = time.time()
utc_time_struct = time.gmtime(t3)
print(utc_time_struct, type(utc_time_struct))
print(time.gmtime(), type(time.gmtime()))
image.png
time.mktime(struct_time)
将一个时间戳struct_time对象转换为时间戳。
# 将struct_time转为时间戳
local_struct_time = time.localtime()
time_stamp = time.mktime(local_struct_time)
print(time_stamp, type(time_stamp))
image.png
time.asctime(struct_time=None)
传入一个struct_time对象,返回"Sun Jun 20 23:21:05 1993"这种格式的字符串。不传参数,返回当前时间的这种格式的字符串。
t4 = time.asctime()
print(t4, type(t4))
image.png
time.strftime(format[, struct_time])
传入格式和struct_time,返回按照format格式格式化后的时间字符串。
# 用于格式化struct_time对象
t5 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(t5, type(t5))
image.png
格式占位符可以参考下图:
image.png
time.strptime(string[, format])
将字符串时间转为struct_time,time.strftime()的逆向操作。
# strftime()逆向操作,从字符串转为struct_time
# 如果你不传入format参数,那么将会采用默认格式%a %b %d %H:%M:%S %Y
# 如果不符合默认格式则会引发ValueError异常
# 所以,一般我们都会指定format,跟个跟具体的需求而定
time_str = "2019-08-02 18:49:00"
format = "%Y-%m-%d %H:%M:%S"
t6 = time.strptime(time_str, format)
print(t6, type(t6))
image.png
网友评论