time模块
import time
时间戳
使用time.time()
来打印时间,这个时间是从1970-01-01 00:00:00开始进行计时,以秒进行计算
stamp_time = time.time()
print(stamp_time)
1560322871.5570526
格式化时间
使用time.strftime()
方法,需要设置打印时间的格式
- %Y 代表year
- %m 代表month
- %d 代表day
- %H 代表hour
- %M 代表minutes
- %S 代表second
- %X 等同于%H:%M:%S
formate_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formate_time)
formate_time = time.strftime('%Y-%m-%d %X')
print(formate_time)
2019-06-12 15:15:12
2019-06-12 15:15:12
结构化时间
使用time.localtime()
表示本地时间,
time.gmtime()
表示0时区的时间
它打印的是以元组的形式把时间元素列出来(年,月,日,时,分,秒,一周中第几天,一年中第几天,夏令时)
struct_time = time.localtime() # 本地时间
print(struct_time)
print('*'*50)
struct_time = time.gmtime() # 0时区时间
print(struct_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=2, tm_sec=33, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=7, tm_min=2, tm_sec=33, tm_wday=2, tm_yday=163, tm_isdst=0)
时间格式间的转化
结构化时间转化为时间戳
struct_time = time.localtime()
print(struct_time)
print("*"*50)
stamp_time = time.mktime(struct_time)
print(stamp_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=4, tm_sec=2, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
1560323042.0
结构化时间转化为格式化时间
struct_time = time.localtime()
print(struct_time)
print("*"*50)
formate_time = time.strftime('%H:%M:%S', struct_time)
print(formate_time)
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=4, tm_sec=30, tm_wday=2, tm_yday=163, tm_isdst=0)
**************************************************
15:04:30
时间戳转化为结构化时间
stamp_time = time.time()
print(stamp_time)
print('*'*50)
struct_time = time.localtime(stamp_time)
print(struct_time)
1560323130.1727746
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=5, tm_sec=30, tm_wday=2, tm_yday=163, tm_isdst=0)
格式化时间转化为结构化时间
formate_time = time.strftime('%Y-%m-%d %H:%M:%S')
print(formate_time)
print('*'*50)
struct_time1 = time.strptime(formate_time, '%Y-%m-%d %H:%M:%S')
print(struct_time1)
2019-06-12 15:06:55
**************************************************
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=15, tm_min=6, tm_sec=55, tm_wday=2, tm_yday=163, tm_isdst=-1)
其它用法
延迟时间
使用time.sleep()
方法
start_time = time.time()
time.sleep(3)
end_time = time.time()
print(end_time-start_time)
3.000251054763794
datetime模块
datetime模块一般使用于时间的加减
- 打印当前时间
import datetime
now = datetime.datetime.now()
print(now)
print(type(now))
2019-06-12 15:39:51.744358
<class 'datetime.datetime'
import time
print(datetime.date.fromtimestamp(time.time()))
2019-06-12
- 当前时间加3天
print(now + datetime.timedelta(3)) # 默认为day = 3
2019-06-15 15:39:51.744358
- 当前时间减3天
print(now + datetime.timedelta(-3))
print(now - datetime.timedelta(3))
2019-06-09 15:39:51.744358
2019-06-09 15:39:51.744358
- 当前时间加3小时
print(now + datetime.timedelta(hours=3))
2019-06-12 18:39:51.744358
- 当前时间加30分钟
print(now + datetime.timedelta(minutes=30))
2019-06-12 16:09:51.744358
- 当前时间加120秒
print(now + datetime.timedelta(seconds=120))
2019-06-12 15:41:51.744358