python time 和 datetime模块

time模块

时间相关的操作,时间有三种表示方式:

时间戳               1970年1月1日之后的秒,即:time.time()

格式化的字符串    2014-11-11 11:11,    即:time.strftime('%Y-%m-%d')

结构化时间          元组包含了:年、日、星期等... time.struct_time    即:time.localtime()

# 1.时间戳
print(time.time())                          # 显示当前时间的时间戳
print(time.mktime(time.localtime()))        # 将一个表示时间的元组(struct_time)转换成时间戳
# 2.struct_time
# (tm_year=2019, tm_mon=3, tm_mday=28, tm_hour=14, tm_min=40, tm_sec=54, tm_wday=3, tm_yday=87, tm_isdst=0)”
print(time.localtime())                     # 将一个时间戳转换成当前时区的struct_time,secs参数未提供默认以当前时间为准.
print(time.gmtime())                        # 将一个时间戳转换成UTC-0时区的struct_time.
print(time.strptime("2018 09 03","%Y %m %d"))   # 将一个格式化的时间字符串转换成struct_time.
# 3.格式化显示时间
print(time.strftime("%Y %m %d %H:%M:%S"))   # 把一个struct_time转换成格式化的时间字符串,if t未指定默认传入time.localtime()
print(time.asctime())                          # 把一个struct_time转换成 Thu Mar 28 22:40:54 2019 这种形式,默认当前时
print(time.ctime()) # 把一个时间戳转换成 Thu Mar 28 22:40:54 2019 这种形式,默认当前时间    

 time的其他用法:

time.sleep()             # 指定延迟程序运行的时间,时间为秒

时间的经典转换:

# 时间戳-----------格式化时间字符串
s = 6473774883
print(time.gmtime(s))
print(time.strftime("%Y %m %d %H:%M:%S", time.gmtime(s)))

# 格式化的时间字符串转换成时间戳
t = time.strftime("%Y %m %d %H:%M:%S", time.gmtime(s))
print(time.strptime(t, "%Y %m %d %H:%M:%S"))
print(time.mktime(time.strptime(t, "%Y %m %d %H:%M:%S")))

 datetime模块

import datetime
d = datetime.datetime.now()  # 返回当前datetime的日期类型
# 可以调用d.timestamp() 返回当前时间的时间戳
# d.year 只返回年
# d.timetuple() 返回当前时间的strue_time的形式
datetime.date.fromtimestamp(55151545)  # 将一个时间戳转换成日期类型
datetime.timedelta()  # 表示时间间隔,即两个时间点之间的长度,参数默认是天,可指定如(hours = 5),用于时间的运算
# 时间的运算
datetime.datetime.now() - datetime.timedelta(3)        # 当前日期减3天
datetime.datetime.now() + datetime.timedelta(hours=5)        # 当前日期加五个小时
# 日期替换
datetime.datetime.now().replace(year=2020,hour=5)    # 将当前时间年替换为2020年,小时替换成5时
print(d)
 
原文地址:https://www.cnblogs.com/zt0903/p/10686884.html