Python 常用时间的操作
- time
- datetime
1. time
- 获取当前的时间戳
time.time()
- 根据时间戳获取时间元组
time.localtime()
- 根据时间元组获取字符串时间
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
1.1 获取当前的时间戳
import time
current_timastamp = time.time()
1558150946.8137608
1.2 将时间戳转换为字符串时间
1.2.1 获取时间元祖time.struct_time()
time.localtime()
参数默认为当前的时间戳 time.time()
,可以指定的时间戳获取指定的时间元组
# 获取当前的时间元组
time.localtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=52, tm_sec=13, tm_wday=5, tm_yday=138, tm_isdst=0)
# 根据指定的时间戳获取指定时间元组
time.localtime(current_timastamp)
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=42, tm_sec=26, tm_wday=5, tm_yday=138, tm_isdst=0)
1.2.2 将时间元祖转换为字符串时间
通过 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
转换为字符串时间。
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
'2019-05-18 12:04:11'
1.2.3 总结:
timestamp ---> struct_time ---> string
1.3 将字符串时间转换时间戳
time.strptime()
将字符串时间转换为时间元祖time.mktime()
时间元祖转换为时间戳
1.3.1 字符串时间转换为时间元祖
通过 time.strptime('str_time',"%Y-%m-%d %H:%M:%S")
获取时间元组 time.struct_time()
str_time = '2019-05-18 03:27:45'
# 获取时间元组
time.strptime(str_time,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=12, tm_min=17, tm_sec=18, tm_wday=5, tm_yday=138, tm_isdst=-1)
1.3.2 时间元祖转换为时间戳
通过 time.mktime(struct_time,"%Y-%m-%d %H:%M:%S")
转换为时间戳
time.mktime(time.strptime(str_time,"%Y-%m-%d %H:%M:%S"))
1558153038.0
总结:
- 将字符串转换为时间元组
time.strptime(str,fomart)
- 将时间元组转换为时间字符戳
time.mktime(struct_time)
1.3.3 time.localtime() 和 time.gmtime() 的区别
time.localtime(time.time())
与 time.gmtime(time.time())
的区别
time.localtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=11, tm_min=56, tm_sec=52, tm_wday=5, tm_yday=138, tm_isdst=0)
# tm_hour = 11
time.gmtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=18, tm_hour=3, tm_min=56, tm_sec=58, tm_wday=5, tm_yday=138, tm_isdst=0)
# tm_hour = 8
2 datetime
2.1 获取当前的时间日期对象
import datetime
d = datetime.datetime.now()
datetime.datetime(2019, 6, 14, 22, 37, 50, 634343)
2.2 将时间对象转换为字符串时间
from datetime import datetime
# 获取当前的时间日期
datetime.now()
datetime.datetime(2019, 5, 21, 9, 53, 28, 875595)
# 将当前的转换为字符串时间
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
'2019-05-21 09:43:21'
2.3 将字符串时间转换为时间对象
# 字符串时间
time_string = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') # '2019-05-23 11:22:36'
datetime.datetime.strptime(time_string,'%Y-%m-%d %H:%M:%S')
datetime.datetime(2019, 5, 23, 14, 31, 28)
3 将时间戳转为时间对象相互转换
3.1 将时间戳转换为时间对象
- datetime.fromtimestamp(t)
t = time.time() # 1558404024.8977106
datetime.fromtimestamp(t)
datetime.datetime(2019, 5, 21, 10, 0, 24, 897711)
3.2 将时间对象转换为时间戳 timestamp()
- t.timestamp()
t = datetime.now()
t.timestamp()
1558404314.672059
3.3 获取前n分钟,天月的日期时间
# python datetime获取几分钟、小时、天之前的时间
print((datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M"))
print((datetime.datetime.now() - datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M"))
print((datetime.datetime.now() - datetime.timedelta(seconds=1)).strftime("%Y-%m-%d %H:%M"))
本文参考:
博主清明-心若淡定