Python时间处理详解:time模块的格式读取与转换实战

橘子海
橘子海
发布时间:2026-10-12| 3人浏览过
原创

本文深入解析Python中time模块的时间处理机制,涵盖浮点数、标准可读、格式化及自定义四种时间表示格式。详细演示time.time()、localtime()、ctime()、strftime()等核心函数的用法,实现时间戳与字符串间的相互转换,并简要对比datetime模块,帮助开发者掌握高效的时间处理技巧。

借助Python内置的time模块,开发者能够便捷地获取、查看及处理各类时间与日期相关数据。

一、时间的表示格式

在Python编程实践中,主要有四种常用的时间表示形式,分别为浮点数格式、标准可读格式、格式化格式以及自定义格式(此处命名仅为便于区分,非官方标准术语)。

(1)浮点数格式

该格式采用float类型的浮点数来表征时间,其具体数值代表从世界标准纪元时间(即1970年1月1日00:00:00)起至当前时刻所经过的秒数。

(2)标准可读格式

其表现形式为“星期几 月份 日期 时:分:秒 年份”,这种格式设计旨在方便人类直接阅读和理解。

(3)格式化格式(time.struct_time)

此格式通过多个独立参数分别存储年份、月份、日期、时分秒等详细信息,这种结构更便于计算机程序进行后续处理与计算。

(4)自定义格式

用户可根据具体业务需求,将时间与日期信息整理为符合个人习惯的自定义字符串格式。

# 浮点数格式
<class 'float'>
1667321639.1330378
# 标准可读格式
<class 'str'>
Wed Nov  2 00:53:59 2022
# 格式化格式
<class 'time.struct_time'>
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=2, tm_hour=0, tm_min=53, tm_sec=59, tm_wday=2, tm_yday=306, tm_isdst=0)
# 自定义格式
<class 'str'>
2022年11月01日 11:59:59

上述不同格式之间的相互转换关系如下图所示:

二、时间的读取与格式转换

1. 使用time.time()方法读取为浮点数格式

调用time.time()函数可直接获取计算机内部时间,其返回值类型为浮点数格式的时间戳。

import time
t1 = time.time()
print(t1)
Out:
1667322679.7262034

2. 使用time.localtime()和time.gmtime()方法读取为格式化格式

time.localtime()用于获取本地时区的时间,而time.gmtime()用于获取世界协调时间(UTC),两者返回值均为格式化格式(struct_time)。

import time
t1 = time.localtime()  # 本地时间
t2 = time.gmtime()  # 世界时间
print(t1)
print(t2)
Out:
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=2, tm_hour=1, tm_min=12, tm_sec=58, tm_wday=2, tm_yday=306, tm_isdst=0)
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=1, tm_hour=17, tm_min=12, tm_sec=58, tm_wday=1, tm_yday=305, tm_isdst=0)

3. 使用time.ctime()和time.asctime()方法读取为标准可读格式

当time.ctime()和time.asctime()函数未传入参数时,它们直接返回当前时间的标准可读格式字符串。

import time
t1 = time.ctime()
t2 = time.asctime()
print(t1)
print(t2)
Out:
Wed Nov  2 01:10:01 2022
Wed Nov  2 01:10:01 2022

若向time.ctime()传入浮点数格式的时间参数,可将其转换为标准可读格式。

若向time.asctime()传入格式化格式(struct_time)的时间参数,可将其转换为标准可读格式。

import time
t1 = time.ctime(time.time())  # 将浮点数格式转换为标准可读格式
t2 = time.asctime(time.localtime())  # 将格式化格式转换为标准可读格式
print(t1)
print(t2)
Out:
Wed Nov  2 01:01:41 2022
Wed Nov  2 01:01:41 2022

4. 使用time.strftime()和time.strptime()完成与自定义格式的互转

time.strftime()函数负责将格式化格式(struct_time)转换为指定的自定义字符串格式。

import time
t1 = time.localtime()  # 格式化格式
s1 = time.strftime("%Y-%m-%d %H:%M:%S", t1)
print(s1)
Out:
2022-11-02 01:21:28  # 自定义格式

time.strptime()函数的功能与time.strftime()相反,它负责将自定义格式的字符串解析并转换为格式化格式(struct_time)。

import time
s1 = "2022年11月01日 11:59:59"  # 自定义格式
t1 = time.strptime(s1, "%Y年%m月%d日 %H:%M:%S")
print(t1)
Out:
time.struct_time(tm_year=2022, tm_mon=11, tm_mday=1, tm_hour=11, tm_min=59, tm_sec=59, tm_wday=1, tm_yday=305, tm_isdst=-1)

补充:python的时间获取与转化:time模块和datetime模块

1.三种时间:UTC time,local time,epoch time 2.三种时间表示:timestamp,struct_time,format time

3.time.time()返回时间戳;time.localtime()返回时间元组;time.strftime('%Y-%m-%d' , time.localtime())返回格式化时间 time.strptime('2018年12月08日 34时10分04秒' , '%Y年%m月%d日 %M时%I分%S秒') 解析字符串返回时间元组

4.datetime模块是对time的进一步封装,主要是5个类:date,time,datetime,timedelta,tzinfo。

5.date.today(),date.fromtimestamp(timestamp),d.weekday(),d.strftime(format) 6.datetime.today(),datetime.now([tz]) 7.timedelta内部值存储days,seconds,microseconds.其他所有值都被转为这三个参数。 8.td.days(),td.seconds()

到此这篇关于Python中的时间格式的读取与转换(time模块)的文章就介绍到这了,更多相关Python时间格式内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。