Python time和datetime模块对时间日期的处理

1. time 概述

计算机网络时间是以UNIX元年1970年1月1日0点开始的

Python time 模块主要对时间进行访问和转换

time 有三种表现形式:

  • 时间戳(timestamp):是一个浮点数,可进行加减运算
  • 格式化时间字符串(string_time):表示常见的时间格式例2021-10-29
  • 结构化时间(struct_time):包含年月日时分秒的多元元组。

重要说明:

  • Python time模块目前只支持2038年。
  • UTC(世界协调时),也称为格林威治天文时间、世界标准时间
  • DST 夏令时。按照当地时间在某一时间段调快一小时
  • Python time是不可变类型,只读不能改

2. 格式化时间字符串

格式 含义
%a 本地星期名称的英文简写(如星期四为Thu)
%A 本地星期名称的英文全称(如星期四为Thursday)
%b 本地月份名称的英文简写(如八月份为agu)
%B 本地月份名称的英文全称(如八月份为august)
%c 本地相应的日期和时间的字符串表示(如:15/08/27 10:20:06)
%d 本月第几号(01 – 31)
%f 微秒(范围0.999999)
%H 一天中的第几个小时(24小时制,00 – 23)
%I 第几个小时(12小时制,0 – 11
%j 一年中的第几天(001 – 366)
%m 月份(01 – 12)
%M 分钟数(00 – 59)
%p 本地am或者pm标识符
%S
%U 一年中的星期数。(00 – 53星期天是一个星期的开始。)
%w 一个星期中的第几天(0 – 6,0是星期天)
%W 一年中的星期数(1-54)
%x 本地相应日期字符串(如15/08/01)
%X 本地相应时间字符串(如08:08:10)
%y 去掉世纪的年份(00 – 99)两个数字表示的年份
%Y 完整的年份(4个数字表示年份如2021)
%z 与UTC时间的间隔(如果是本地时间,返回空字符串)
%Z 时区的名字(如果是本地时间,返回空字符串)
%% ‘%’字符

3. time 结构化

index 属性 取值范围
0 tm_year(年) 例如2021
1 tm_mon(月) 1~12
2 tm_mday(日) 1~31
3 tm_hour(时) 0~23
4 tm_min(分) 0~59
5 tm_sec(秒) 0~61(60或61 是闰秒)
6 tm_wday(weekday) 0~6
7 tm_yday(一年中的第几天) 1~366
8 tm_isdst(是否是夏令时) -1

4. time 相关方法

方法 作用
time.sleep(t) 睡眠t秒,t可以是浮点数或整数
time.time() 获取当前系统时间戳
time.gmtime(sec) 时间戳转换成UTC的结构化时间,sec 默认time.time()作为参数
time.localtime(sec) 时间戳转换成当前的结构化时间,sec 默认time.time()作为参数
time.ctime(sec) 时间戳转换成本地时间的格式化字符串,sec 默认time.time()作为参数
time.asctime(t) 将结构化时间转换成格式化字符串,time.localtime()作为参数
time.mktime(t) 将结构化时间转换成时间戳
time.strftime(format,[t]) 将结构化时间转换成指定字符串格式的当地时间默认传入time.localtime()
time.strptime(string,[t]) 将格式化时间转换成结构化时间
time.clock() 返回执行当前程序的CPU时间

5.实操

import time
# 获取本地时间戳

stamp = time.time()







# 获取本地gmt时间

gmt = time.gmtime()




# 获取本地时间

local = time.localtime()




# 本地时间格式化




strtime = time.ctime()




# 结构化时间转换成格式化字符




asctime = time.asctime()




# 将结构化时间转换成时间戳




constamp = time.mktime(local)




# 将结构化时间转换成指定字符串格式时间




strf = time.strftime("%Y-%m-%d %H:%M:%S")




# 将格式化时间转成结构化时间




str = time.strptime("2021-10-29 21:07:24","%Y-%m-%d %H:%M:%S")

print("获取本地时间戳:",stamp)

print("获取本地gmt时间:",gmt)

print("获取本地时间:",local)

print("本地时间格式化:",strtime)

print("结构化时间转换成格式化字符:",asctime)

print("将结构化时间转换成时间戳:",constamp)

print("将结构化时间转换成指定字符串格式时间:",strf)

print("将格式化时间转成结构化时间:",str)