python之时间模块
python之时间模块
Python的时间模块是Python的内置模块,通常用的是time和datetime。若是用shell表示则用date +‘%F %T’表示或其他选项形式
#格式化的字符串形式的时间格式 >>结构化时间>> 时间戳的时间格式
1 time模块
时间分为三种格式: 1.时间戳: 从1970到现在经过的秒数 #print (time.time()) 2.格式化的字符串形式(按照某种格式显示的时间) 2022-06-03 12:12:12 #print(time.strftime('%Y-%m-%d %H-%M-%S %p')) #print(time.strftime('%Y-%m-%d %X')) #print(time.time()+86400*3) 3.结构化的时间 #res=time.localtime() #print(res) >>>import time >>> print (time.time()) 1654252321.9279916 >>> print(time.time()+86400*3) 1654512716.9964263 >>> print(time.strftime('%Y-%m-%d %H-%M-%S %p')) 2022-06-03 18-35-21 PM >>> print(time.strftime('%Y-%m-%d %X')) 2022-06-03 18:36:01 >>> res=time.localtime() >>> print(res) time.struct_time(tm_year=2022, tm_mon=6, tm_mday=3, tm_hour=18, tm_min=38, tm_sec=49, tm_wday=4, tm_yday=154, tm_isdst=0)
2 datetime模块
import datetime print(datetime.datetime.now()) >>> import datetime >>> print(datetime.datetime.now()) 2022-06-03 18:49:40.382410 >>> print(datetime.datetime.now()+datetime.timedelta(days=3)) 2022-06-06 18:55:16.386932 >>> print(datetime.datetime.now()+datetime.timedelta(days=-3)) 2022-05-31 18:56:20.013791 >>> print(datetime.datetime.now()-datetime.timedelta(days=3)) 2022-05-31 18:58:32.398548 >>> print(datetime.datetime.now()+datetime.timedelta(weeks=3)) 2022-06-24 18:59:25.315092
3 补充 time 和datetime
print(time.localtime()) #本地时间
print(time.gmtime()) #世界标准时间
>>> print(time.localtime()) #本地时间
time.struct_time(tm_year=2022, tm_mon=6, tm_mday=3, tm_hour=19, tm_min=27, tm_sec=18, tm_wday=4, tm_yday=154, tm_isdst=0)
>>> print(time.gmtime()) #世界标准时间
time.struct_time(tm_year=2022, tm_mon=6, tm_mday=3, tm_hour=11, tm_min=27, tm_sec=26, tm_wday=4, tm_yday=154, tm_isdst=0)
>>> print(time.localtime(666))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=11, tm_sec=6, tm_wday=3, tm_yday=1, tm_isdst=0)
>>> print(time.gmtime(666))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=11, tm_sec=6, tm_wday=3, tm_yday=1, tm_isdst=0)
import time
>>>time.sleep(3) >>>print(time.asctime()) #相当于print(time.strftime('%Y-%m-%d %X')) Fri Jun 3 22:36:18 2022 import datetime >>> print (datetime.datetime.now()) 2022-06-03 22:40:42.603879 >>> print (datetime.datetime.utcnow()) 2022-06-03 14:40:42.604371 >>> print (datetime.datetime.fromtimestamp(6666)) 1970-01-01 09:51:06
4 时间格式转换
# 1.时间格式的转换 import time s_time=time.localtime() print(time.mktime(s_time)) # 结构化的时间格式(struct_time) >>转换>> 时间戳格式 >>> s_time=time.localtime() >>> print(time.mktime(s_time)) 1654254706.0 #时间戳格式 >>转换>> 结构化时间格式(struct_time) tp_time=time.time() print(time.localtime(tp_time)) >>> tp_time=time.time() >>> print(time.localtime(tp_time)) time.struct_time(tm_year=2022, tm_mon=6, tm_mday=3, tm_hour=19, tm_min=24, tm_sec=8, tm_wday=4, tm_yday=154, tm_isdst=0) # 结构化时间(struct_time) >>>> 格式化的字符串形式的时间格式 s_time=time.localtime() print(time.strftime('%Y-%m-%d %H:%M:%S',s_time)) >>> s_time=time.localtime() >>> print(time.strftime('%Y-%m-%d %H:%M:%S',s_time)) 2022-06-03 19:38:58
# 格式化的字符串形式的时间格式 >>>> 结构化时间(struct_time) print(time.strptime('1994-12-12 12:12:12','%Y-%m-%d %H:%M:%S')) >>> print(time.strptime('1994-12-12 12:12:12','%Y-%m-%d %H:%M:%S')) time.struct_time(tm_year=1994, tm_mon=12, tm_mday=12, tm_hour=12, tm_min=12, tm_sec=12, tm_wday=0, tm_yday=346, tm_isdst=-1) # 格式化的字符串形式的时间格式 >>>> 时间戳的时间格式 #实现1994-12-12时间加7天显示 #格式化的字符串形式的时间格式 >>结构化时间>> 时间戳的时间格式timestamp struct_time=time.strptime('1994-12-12 12:12:12','%Y-%m-%d %H:%M:%S') print(time.mktime(struct_time)) timestamp=time.mktime(struct_time)+7*86400 print(timestamp) #格式化的字符串形式的时间格式 << 结构化时间 << 时间戳的时间格式timestamp res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp)) print(res) >>> struct_time=time.strptime('1994-12-12 12:12:12','%Y-%m-%d %H:%M:%S') >>> print(time.mktime(struct_time)) 787205532.0 >>> timestamp=time.mktime(struct_time)+7*86400 >>> print(timestamp) 787810332.0 >>> res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp)) >>> print(res) 1994-12-19 12:12:12