目录
time四种类型介绍(time, datetime, string, timestamp)
1. string类型
2. datetime tuple(datetime类型)
3. time tuple(time类型)
4. timestamp(时间戳类型)
time, datetime, string, timestamp相互转换
1. string 转换为其它类型
1.1 string --> datetime obj(文本转datetime类型)
1.2 string --> time obj(文本转time类型)
1.3 string --> timestamp(文本转时间戳类型)
2. datetime obj转换为其它类型
2.1 datetimeobj --> string(datetime类型转文本)
2.2 datetime obj --> time obj(datetime类型转time类型)
2.3 datetime obj --> timestamp(datetime类型转时间戳类型)
3. time obj转换为其它
3.1 time obj --> string(time类型转化为文本)
3.2 time obj --> datetime obj(time类型转datetime类型)
3.3 time obj --> timestamp(time转时间戳)
4. timestamp时间戳转换为其它
4.1 timestamp --> datetime obj(时间戳转datetime)
4.2 timestamp --> time obj(时间戳转time时间)
4.3 timestamp --> time obj(时间戳转time时间)
string是最简单的表示time的方式,如:
str_time1 = '2018/08/08 12:02:05'
str_time2 = '2018-08-08'
datetime tuple是datetime.datetime对象类型
import datetime
time_str = '2019/02/18 20:20'
datetime.datetime.strptime(time_str, '%Y/%m/%d %H:%M') #
# out:
# datetime.datetime(2019, 2, 18, 20, 20)
time tuple是time.struct_time对象类型
import time
# 获取当前时间
time.localtime() #
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=19, tm_min=4, tm_sec=53, tm_wday=0, tm_yday=49, tm_isdst=0)
时间戳类型:自1970年1月1日(00:00:00 GMT)以来的秒数
import time
# 获取当前时间戳
time.time() #
# out:
# 1550488012.213949
初始化:
time_str = '2019/02/18 20:20'
datetime.datetime.strptime(time_str,'%Y/%m/%d %H:%M')
# out:
# datetime.datetime(2019, 2, 18, 20, 20)
time_str = '2019/02/18 20:20'
time.strptime(time_str,'%Y/%m/%d %H:%M')
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=20, tm_min=20, tm_sec=0, tm_wday=0, tm_yday=49, tm_isdst=-1)
time_str = '2019/02/18 20:20'
# 文本转time obj类型,再转时间戳
time.mktime(time.strptime(time_str,'%Y/%m/%d %H:%M'))
# out:
# 1550492400.0
datetime obj转换为其它类型,用的都是datetime的函数
dt_obj = datetime.datetime.now() # datetime.datetime(2019, 2, 18, 19, 30, 51, 910294)
# strftime函数进行转换
dt_obj.strftime('%Y-%m-%d %H:%M')
# out:
# '2019-02-18 19:34'
dt_obj = datetime.datetime.now() # datetime.datetime(2019, 2, 18, 19, 30, 51, 910294)
# timetuple函数进行转换
dt_obj.timetuple()
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=19, tm_min=36, tm_sec=25, tm_wday=0, tm_yday=49, tm_isdst=-1)
dt_obj = datetime.datetime.now() # datetime.datetime(2019, 2, 18, 19, 30, 51, 910294)
# 先timetuple函数进行转换,后mktime函数
time.mktime(time.strptime(time_str,'%Y/%m/%d %H:%M'))
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=19, tm_min=36, tm_sec=25, tm_wday=0, tm_yday=49, tm_isdst=-1)
time_obj = time.localtime() # time.struct_time
# strftime函数
time.strftime( '%Y-%m-%d %H:%M:%S', time_obj)
# out:
# '2019-02-18 19:44:46'
time_obj = time.localtime() # time.struct_time
# time转datetime
datetime.datetime(*time_obj[0:6])
# out:
# datetime.datetime(2019, 2, 18, 19, 44, 46)
time_obj = time.localtime() # time.struct_time
# mktime函数
time.mktime(time_obj)
# out:
# 1550490827.0
time_stamp = 1550490827.0
# 本地时区:fromtimestamp函数
datetime.datetime.fromtimestamp(time_stamp)
# out:
# datetime.datetime(2019, 2, 18, 19, 53, 47)
# UTC标准时区:utcfromtimestamp函数
datetime.datetime.utcfromtimestamp(time_stamp)
# out:
# datetime.datetime(2019, 2, 18, 11, 53, 47)
time_stamp = 1550490827.0
# 本地时区:localtime函数
time.localtime(time_stamp)
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=19, tm_min=53, tm_sec=47, tm_wday=0, tm_yday=49, tm_isdst=0)
# UTC标准时区:gmtime函数
time.gmtime(time_stamp)
# out:
# time.struct_time(tm_year=2019, tm_mon=2, tm_mday=18, tm_hour=11, tm_min=53, tm_sec=47, tm_wday=0, tm_yday=49, tm_isdst=0)
time_stamp = 1550490827.0
# 先转time类型(标准时区改为gmtime)
time_obj = time.localtime(time_stamp) # 本地时区
# 转为文本类型
time.strftime('%Y-%m-%d %H:%M:%S',time_obj)
# out:
# '2019-02-18 19:53:47'
参考:https://www.cnblogs.com/shhnwangjian/p/6117602.html