一、time模块介绍
Python中的time模块是一个与时间相关的模块,提供了多个处理时间的函数以及可供使用的结构体,例如时间戳、结构化时间等。time模块是Python处理与时间相关信息的标准库,它定义了表示和操作时间的函数和变量,在Python中,使用它来获取和修改时间信息。
二、时间戳转换为字符串
时间戳(timestamp)是指从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,通常使用整数表示。时间戳是表示时间的一种技术,一般很少直接使用。但是在Python中,我们经常会用到将时间戳转换成字符串来显示时间。
import time # 将时间戳转换为本地时间struct_time,再使用strftime将其转换为时间字符串 time_str = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_stamp))
其中,%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的天数,%H表示小时,%M表示分钟,%S表示秒数。以上语法格式用于格式化struct_time成字符串。在上面示例中,我们使用time.localtime将时间戳转换成struct_time,然后再通过strftime将其格式化为我们想要的时间字符串。
三、时间戳转换为日期
在很多情况下,我们只需要将时间戳转换成日期并显示出来。与将时间戳转换成字符串不同,将时间戳转换为日期是不需要再次转换为struct_time的。Python提供了另一个方法——gmtime,它可以直接将时间戳转换成UTC时区时间。
import time # 将UTC时间戳转换为struct_time,年月日为元组的形式表示 utc_time = time.gmtime(time_stamp) date_tuple = (utc_time[0], utc_time[1], utc_time[2]) # 直接将数字分别转换为字符串并连接起来 date_str = '-'.join([str(i) for i in date_tuple])
在上面的代码中,我们使用time.gmtime方法将时间戳转换成UTC时间下的struct_time,然后从struct_time中获取年月日的元组。最后,我们将这个元组转换成字符串,其中元素之间用"-"连接。
四、时间戳转换为星期
将时间戳转换为星期几需要使用calendar模块,该模块可以生成各种与日历相关的事项,包括星期几。在我们的代码中,我们将时间戳转换成整数的星期几。
import time import calendar # 将时间戳转换为struct_time,再使用calendar.weekday获取星期几 struct_time = time.localtime(time_stamp) week_day_index = calendar.weekday(struct_time.tm_year, struct_time.tm_mon, struct_time.tm_mday) # 将星期几的数字转换为中文 week_day_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] week_day_cn = week_day_list[week_day_index]
在上面的代码中,我们使用了calendar.weekday()方法,该方法可以通过传递年、月、日来获取给定日期的星期几的数字(0表示星期一,1表示星期二,以此类推)。最后,我们将数字转换为中文星期几。
五、时间格式化字符串
时间格式化字符用来将日期格式化成Python中的时间字符串的字符串。时间字符串的格式通常是特定的格式,即以某种方式格式化后显示日期和时间。在Python中,我们可以使用datetime模块将日期和时间字符串格式化为Python支持的日期时间格式。例如:%y/%m/%d %H:%M:%S。
import time # 获取当前时间的时间戳 time_stamp = time.time() # 将时间戳转换为本地时间struct_time,然后使用strftime方法将其格式化为我们想要的格式 struct_time = time.localtime(time_stamp) time_str = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)
在上面的代码中,我们首先使用time.time()获取当前时间的时间戳,然后使用time.localtime()方法将其转换为本地时间下的struct_time。最后,我们使用strftime()方法将struct_time格式化为我们想要的格式。在时间格式字符串中,%Y表示四位数的年份,%m表示两位数的月份,%d表示两位数的天数,%H表示小时,%M表示分钟,%S表示秒数。