Python--time模块
本页包含time的相关方法:strtime、time、localtime、gmtime、ctime、mktime
封装好函数:时间戳与格式化好时间的相互转换
时间的两种方式
时间戳:time_stamp,从计算机诞生的那一天到现在过了多少秒,每过一秒加1
格式化好的时间:
时间元组:time_tuple,时间戳与格式化好的时间转换需通过时间元组中转
获取当前时间的时间戳、格式化好时间、时间元组
1 #当前格式化好的时间 2 import time,os,datetime 3 print(time.strftime("%Y-%m-%d %H:%M:%S"))#取当前格式化好的时间。2022-03-11 17:36:59 4 print(time.strftime("%y-%m-%d %H:%M:%S"))#注意Yy输出结果的区别。22-03-11 17:36:59 5 print(datetime.datetime.today())#取当前格式化好的时间。2022-03-17 20:59:40.973372 6 7 #当前时间戳 8 print(time.time())#取当前时间戳。1646991419.9585357 9 #时间戳的存在,便于时间计算,比如1天就是24小时*60分*60秒,3天再*3即可 10 print(1646990810+3*24*60*60)#1647250010 11 12 # 当前时间元组 13 print(time.localtime())# 取当前时间的时间元组 14 print(time.localtime(1646991419.9585357))#取指定时间的时间元组 15 #localtime取本地时间,所以优先选择这个。time.struct_time(tm_year=2022, tm_mon=3, tm_mday=11, tm_hour=17, tm_min=36, tm_sec=59, tm_wday=4, tm_yday=70, tm_isdst=0) 16 print(time.gmtime(1646991419.9585357)) 17 #注意:gmtime取标准时区的时间,非东八区时间。time.struct_time(tm_year=2022, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=36, tm_sec=59, tm_wday=4, tm_yday=70, tm_isdst=0)
时间戳与格式化好时间相互转换
1 # 时间戳转化为格式化好的时间
2 # 方法一:先转换为时间元组,再用strftime,不转换会报错
3 creat_time = os.path.getctime("222.txt")#获取某文件创建时间。creat_time:1646055876.3876796
4 time_tuple = time.localtime(creat_time)#转化为时间元组。time_tuple:time.struct_time(tm_year=2022, tm_mon=2, tm_mday=28, tm_hour=21, tm_min=44, tm_sec=36, tm_wday=0, tm_yday=59, tm_isdst=0)
5 print(time.strftime("%Y-%m-%d %H:%M:%S",time_tuple))#转化为格式好的时间。2022-02-28 21:44:36
6
7 #方法二:可以直接用ctime非标准化时间
8 print(time.ctime(creat_time))#Mon Feb 28 21:44:36 2022
9
10 # 格式化好的时间转换为时间戳
11 time_tuple = time.strptime("2022-02-28 21:44:36","%Y-%m-%d %H:%M:%S")#格式化好的时间转化为时间元组。time.struct_time(tm_year=2022, tm_mon=2, tm_mday=28, tm_hour=21, tm_min=44, tm_sec=36, tm_wday=0, tm_yday=59, tm_isdst=-1)
12 time_stamp = time.mktime(time_tuple)
13 print(time_stamp)#把时间元组转化为时间戳。1646055876.0
14 print(int(time_stamp))#去掉小数点,1646055876
封装好的函数:时间戳与时间相互转换
1 # 格式化好的时间转化为时间戳。 2 def str_to_timestamp(str = None ,format= "%Y-%m-%d %H:%M:%S"): 3 # format默认格式,想输出其他格式可以传参 4 if str : 5 time_tuple = time.strptime(str,format)#时间元组 6 return int(time.mktime(time_tuple))#如果传参就输出传参对应的时间戳 7 return int(time.time()) #str不传参就输出当前时间的时间戳 8 9 print(str_to_timestamp("2022-02-28 21:44:36")) #format默认格式 10 print(str_to_timestamp("2022-02-28","%Y-%m-%d")) #fomat手动输入格式,前面的str要与之格式一致 11 print(str_to_timestamp())#为空输出档期按时间时间戳 12 13 # 时间戳转化为格式化好的时间 14 def stamptime_to_str(stamptime = None,format= "%Y-%m-%d %H:%M:%S"): 15 #如果不传时间戳,就返回当前时间格式化好的时间 16 if stamptime : 17 time_tuple = time.localtime(stamptime) 18 return time.strftime(format,time_tuple) 19 return time.strftime(format)#这一行等于下面三行 20 # else: 21 # time_tuple = time.localtime() 22 # return time.strftime(format, time_tuple) 23 24 print(stamptime_to_str()) 25 print(stamptime_to_str(1646055876.3876796)) 26 print(stamptime_to_str(1646055876,"%Y-%m-%d"))
浙公网安备 33010602011771号