目录
三、struct_time格式介绍及format_time结构化表示
time模块
time模块中时间表现的格式主要有三种:
a、timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
b、struct_time时间元组,共有九个元素组。
c、format time 格式化时间,已格式化的结构使时间更具可读性。包括自定义格式和固定格式。
一、时间格式转换图:
二、代码
# encoding: utf-8
"""
@author: sunxianpeng
@file: time_test.py
@time: 2019/12/1 16:02
"""
import time
def between_struct_time_and_timestamp():
print("#####################struct_time 和 timestamp 之间的转换#####################")
print('************生成timestamp**************')
# 1 生成timestamp
print('1 timestamp = {}'.format(time.time()))#1 timestamp = 1575188363.801
print('************struct_time to timestamp**************')
# 2 struct_time to timestamp
# struct_time = time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=16, tm_min=17, tm_sec=10, tm_wday=6,
# tm_yday=335, tm_isdst=0)
localtime = time.localtime()
timestamp = time.mktime(localtime)
print('2 struct_time = {}'.format(localtime))
print('2 timestamp = {}'.format(timestamp))#timestamp = 1575188363.0
print('************timestamp to struct_time 本地时间**************')
#3 生成 struct_time,timestamp to struct_time 本地时间
localtime = time.localtime(time.time())
# struct_time = time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=16, tm_min=17, tm_sec=10, tm_wday=6,
# tm_yday=335, tm_isdst=0)
print('3 struct_time = {}'.format(localtime))
print('************timestamp to struct_time 格林威治时间**************')
gmtime = time.gmtime()
# time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=8, tm_min=23, tm_sec=52, tm_wday=6, tm_yday=335,
# tm_isdst=0)
print('gmtime = {}'.format(gmtime))
print('格林威治时间 = {}'.format(time.gmtime(time.time())))
def between_format_time_and_struct_time():
print("#####################format_time 和 struce_time 之间的转换#####################")
print('************format_time to struct_time**************')
format_time = '2019-12-01 16:37:06'
format = '%Y-%m-%d %X'
struct_time = time.strptime(format_time,format)
print('1 format time = {}'.format(format_time))
print('1 struct time = {}'.format(struct_time))
# 1 format time = 2019-12-01 16:37:06
# 1 structtime = time.struct_time(tm_year=2019, tm_mon=12, tm_mday=1, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=6, tm_yday=335,
# tm_isdst=-1)
print('************struct_time to format_time**************')
format_time_1 = time.strftime(format)
format_time_2 = time.strftime(format,time.localtime())
print('2 format_time_1 = {}'.format(format_time_1))
print('2 format_time_2 = {}'.format(format_time_2))
# 2 format_time_1 = 2019-12-01 16:42:27
# 2 format_time_2 = 2019-12-01 16:42:27
def other_time_op():
print("#####################其他操作#####################")
print('************生成固定格式的时间表示格式**************')
# 生成固定格式的时间表示格式
t1 = time.asctime(time.localtime())#Sun Dec 1 16:39:50 2019
t2 = time.ctime(time.time())#Sun Dec 1 16:39:50 2019
print('1 t1 = {}'.format(t1))
print('1 t2 = {}'.format(t2))
# 1 t1 = Sun Dec 1 16:44:57 2019
# 1 t2 = Sun Dec 1 16:44:57 2019
print('************time加减**************')
# timestamp加减单位以秒为单位
t3 = time.time()
t4 = t3 + 10
print('2 t3 = {}'.format(t3))
print('2 t4 = {}'.format(t4))
#2 t3 = 1575189897.4310002
# 2 t4 = 1575189907.4310002
if __name__ == '__main__':
# between_struct_time_and_timestamp()
between_format_time_and_struct_time()
other_time_op()
三、struct_time格式介绍及format_time结构化表示
格式 | 含义 |
%a | 本地(locale)简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化月份名称 |
%B | 本地完整月份名称 |
%c | 本地相应的日期和时间表示 |
%d | 一个月中的第几天(01 - 31) |
%H | 一天中的第几个小时(24小时制,00 - 23) |
%I | 第几个小时(12小时制,01 - 12) |
%j | 一年中的第几天(001 - 366) |
%m | 月份(01 - 12) |
%M | 分钟数(00 - 59) |
%p | 本地am或者pm的相应符 |
%S | 秒(01 - 61) |
%U | 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。 |
%w | 一个星期中的第几天(0 - 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一为一个星期的开始。 |
%x | 本地相应日期 |
%X | 本地相应时间 |
%y | 去掉世纪的年份(00 - 99) |
%Y | 完整的年份 |
%Z | 时区的名字(如果不存在为空字符) |
%% | ‘%’字符 |