python之时间模块
Python的时间模块是Python的内置模块,通常用的是time和datetime。若是用shell表示则用date +‘%F %T’表示或其他选项形式
time时间分为三种格式:
1.时间戳: 从1970到现在经过的秒数; 用于时间间隔的计算
#print(time.time()+86400*3)
2.格式化的字符串形式(按照某种格式显示的时间) 2022-06-03 12:12:12 ;用于展示时间
3.结构化的时间;用于单独获取时间的某一部分
时间格式转换:
- 结构化的时间格式(struct_time) >>转换>> 时间戳格式
2.时间戳格式 >>>> 结构化时间格式(struct_time)
3.结构化时间(struct_time) >>>> 格式化的字符串形式的时间格式
4.格式化的字符串形式的时间格式 >>>> 时间戳的时间格式
#格式化的字符串形式的时间格式 >>结构化时间>> 时间戳的时间格式
#格式化的字符串形式的时间格式 << 结构化时间 << 时间戳的时间格式
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