当前位置: 代码网 > it编程>前端脚本>Python > Python中时间 & 时间戳之间的转换方式

Python中时间 & 时间戳之间的转换方式

2026年09月29日 • Python •我要评论
使用python中的time模块,对时间的几种格式进行转换一、几个常用函数strptime(), 将 时间字符串 转换成 结构化时间 struct_time注意,结构化时间 是所有转换的 过渡格式im

使用python中的time模块,对时间的几种格式进行转换

一、几个常用函数

  • strptime(), 将 时间字符串 转换成 结构化时间 struct_time

注意,结构化时间 是所有转换的 过渡格式

import time
time_str = "2022-03-18 10:54:00"
struct_time = time.strptime(time_str, '%y-%m-%d %h:%m:%s')
print(struct_time)
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=18, tm_hour=10, tm_min=54, tm_sec=0, tm_wday=4, tm_yday=77, tm_isdst=-1)

struct_time 是一个类,里面分别对应了时间的年、月、日、时、分、秒、一周的第几天(周一是0,0-6)、一年的第几天(从1开始,1-366)、夏时令(是夏时令1,不是0,不知道-1)。

  • mktime(),将 结构化时间 转换为 时间戳
timestamp = time.mktime(struct_time)
print(timestamp)
1647572040.0
  • strftime(),把 结构化时间 转换为 任意格式的时间字符串
time_str_new = time.strftime("%y%m%d-%h:%m:%s", struct_time)
print(time_str_new)
20220318-10:54:00

二、其他常见需求

2.1 获取当前时间

print(time.time())
print(time.localtime())
print(time.localtime(time.time()))
1647574078.38
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=18, tm_hour=11, tm_min=27, tm_sec=58, tm_wday=4, tm_yday=77, tm_isdst=0)
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=18, tm_hour=11, tm_min=27, tm_sec=58, tm_wday=4, tm_yday=77, tm_isdst=0)

2.2 时间戳 => 时间字符串

时间戳 => 结构化时间 (struct_time) => 时间字符串

time_stamp = 1640844000

# 时间戳 => 结构化时间 => 时间字符串
time_str = time.strftime('%y-%m-%d %h:%m:%s', time.localtime(time_stamp))
print(time_str)
2021-12-30 14:00:00

2.3 时间字符串 => 时间戳

时间字符串 => 结构化时间 (struct_time) => 时间戳

time_str = "2022-03-18 10:54:00"
time_stamp = time.mktime(time.strptime(time_str, '%y-%m-%d %h:%m:%s'))
print(time_stamp)
1647572040.0

2.4 时间字符串a => 时间字符串b

时间字符串a => 结构化时间 (struct_time) => 时间字符串b

time_str = "2022-03-18 10:54:00"
time_str_new = time.strftime("%y%m%d-%h:%m:%s", time.strptime(time_str, '%y-%m-%d %h:%m:%s'))
print(time_str_new)
20220318-10:54:00

2.5 列出日期字符串列表

import datetime

start_date = "20230801"
end_date = "20230805"

date_list = [datetime.datetime.strftime(datetime.datetime.strptime(start_date, "%y%m%d") + datetime.timedelta(days=i), "%y%m%d") for i in range((datetime.datetime.strptime(end_date, "%y%m%d") - datetime.datetime.strptime(start_date, "%y%m%d")).days + 1)]

print date_list

['20230801', '20230802', '20230803', '20230804', '20230805']

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

赞 (0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com