Python time模块详解:时间戳、格式化与结构化时间处理
本文详细介绍Python中time模块的核心功能,涵盖时间戳、格式化字符串和结构化时间三种表现形式。通过解析time模块的关键方法,如time.time()、time.localtime()和time.strftime(),帮助开发者掌握日志追踪、时间转换及程序休眠等实际应用场景。
前言:
在日常生活里,时间与日期无处不在,汉语中诸如斗转星移、分秒必争、只争朝夕、转眼之间等词汇皆是对时间的生动描绘。在软件开发中,时间的记录与处理同样不可或缺。在Python这一高级编程语言中,标准库内置了time与datetime两个模块,专门用于处理各类时间日期相关的操作。
1. time 概述
计算机网络中的时间基准,通常以UNIX元年1970年1月1日0点0分0秒作为起始点计算。
Python中的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)

6.总结
通过本文学习,我们了解了time模块涉及的三种时间格式,并掌握了常用time方法的具体使用方式。
在实际程序中,利用time模块可以帮助开发者快速定位并查看特定时间点的日志详情。
到此这篇关于 Python 时间操作time详情的文章就介绍到这了,更多相关 Python 时间操作time内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









