前言:
我们在日常生活中,都离不开时间和日期。不仅我们的汉字都有大量描述时间日期的词语如斗转星移、分秒必争、只针朝夕、转眼之间等。同样,在我们程序中,我们也离不开时间日期的记录。在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.实操
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
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 ) |
6.总结
对time模块中涉及到三种时间格式进行了解和学习,并对常用的time方法进行使用。
time 模块在我们程序中,能帮我们快速查找某一时间点的log详情。
到此这篇关于 Python 时间操作time详情的文章就介绍到这了,更多相关 Python 时间操作time内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://juejin.cn/post/7024474853809848356