Python time模块时间处理详解:字符串、时间戳与格式转换
在Python开发中,处理日期和时间是常见需求。time模块提供了多种函数来实现字符串与时间对象之间的转换、时间戳的获取以及时间格式化的操作。本文将通过具体代码示例,详细解析这些核心功能的用法。
字符串与时间元组的相互转换
处理时间数据时,通常需要将用户输入的字符串解析为Python可识别的时间元组,或者将时间元组格式化为可读的字符串。这主要依赖于 time.strptime() 和 time.strftime() 两个函数。
字符串解析为时间元组
time.strptime() 函数用于将字符串按照指定的格式解析为时间元组(struct_time)。其第一个参数是待解析的字符串,第二个参数是定义格式的指令。
import time
start = "2017-01-01"
end = "2017-8-12"
# 将字符串解析为时间元组,指定格式为年-月-日
startTime = time.strptime(start, "%Y-%m-%d")
endTime = time.strptime(end, "%Y-%m-%d")
print(startTime)
print(endTime)时间元组格式化为字符串
相反地,time.strftime() 用于将时间元组转换为指定格式的字符串。注意该函数的参数顺序与 strptime 不同,第一个参数是格式字符串,第二个参数是时间元组。
# 将时间元组格式化为字符串,指定输出格式
_start = time.strftime('%Y%m%d-%H:%M:%S', startTime)
_end = time.strftime('%Y%m%d-%H:%M:%S', endTime)
print(_start)
print(_end)时间戳与时间对象的转换
时间戳(Timestamp)通常指从1970年1月1日00:00:00开始到现在的秒数。在Python中,可以通过 time.mktime() 和 time.localtime() 在时间元组与时间戳之间进行转换。
时间元组转时间戳
time.mktime(t) 接收一个时间元组,返回对应的时间戳(浮点数)。这对于计算时间差非常有用。
# 将时间元组转换为时间戳
startStamp = time.mktime(startTime)
endStamp = time.mktime(endTime)
print(startStamp)
print(endStamp)时间戳转时间元组
time.localtime(s) 接收一个时间戳,返回本地时间对应的时间元组。
# 将时间戳转换回时间元组
_startTime = time.localtime(startStamp)
print(_startTime)计算时间差值
获取两个日期的时间戳后,可以通过简单的算术运算计算它们之间的天数差。由于时间戳以秒为单位,计算天数需除以一天的总秒数(24 * 60 * 60)。
# 计算两个日期之间的天数差
print(int((endStamp - startStamp) / (24 * 60 * 60)))常用时间格式化符号
在使用 strftime 和 strptime 时,需要掌握以下常见的格式控制符:
%a:英文星期简写(如 Mon)%A:英文星期全称(如 Monday)%b:英文月份简写(如 Jan)%B:英文月份全称(如 January)%c:本地相应的日期和时间表示%d:月份中的天数,范围 01-31%H:小时(24小时制),范围 00-23%I:小时(12小时制),范围 01-12%m:月份,范围 01-12%M:分钟,范围 00-59%j:一年中的第几天,范围 001-366%w:星期几,范围 0(周日)- 6(周六)%W:一年中的第几周,范围 00-53%x:本地日期表示%X:本地时间表示%y:年份,范围 00-99%Y:年份,完整拼写(如 2017)
以上就是基于Python time模块进行时间处理的详细内容,更多关于Python时间处理技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









