You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带时区与月份缩写的日期字符串转换为Unix时间戳

更优雅的日期转Unix时间戳方案

当然有更简洁且可靠的实现方法!Python内置的datetime模块完全可以直接处理这种带月份缩写和时区偏移的日期字符串,不用手动维护月份查找表,还能自动解析时区信息。

核心方法:datetime.strptime()

strptime()方法支持通过格式符匹配各种日期格式,正好能覆盖你给出的08 Jan 2018 08:45:30 +0100格式。直接看代码示例:

from datetime import datetime

# 你的原始日期字符串
date_str = '08 Jan 2018 08:45:30 +0100'
# 用对应格式符解析日期
dt_object = datetime.strptime(date_str, '%d %b %Y %H:%M:%S %z')
# 转换为Unix时间戳(秒级)
unix_timestamp = dt_object.timestamp()

print(unix_timestamp)  # 输出:1515395130.0

格式符说明

这里用到的格式符对应字符串的各个部分:

  • %d:两位数字的日期(比如08)
  • %b:月份的英文缩写(Jan、Feb等,大小写需要和输入字符串匹配)
  • %Y:四位数字的年份(2018)
  • %H:%M:%S:24小时制的时分秒(08:45:30)
  • %z:时区偏移,格式为±HHMM(正好匹配+0100)

处理非英文月份缩写

如果你需要处理像Mai(德语五月)这类非英文的月份缩写,只需要设置对应的本地化环境即可,不用修改格式符:

import locale
from datetime import datetime

# 设置德语本地化(根据你的需求调整)
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
# 解析带德语月份的日期
dt_object = datetime.strptime('08 Mai 2018 08:45:30 +0100', '%d %b %Y %H:%M:%S %z')
unix_timestamp = dt_object.timestamp()

为什么这个方法更优

对比你之前的查找表方案:

  • 不用手动维护月份映射,避免拼写错误或遗漏
  • 自动处理时区偏移,无需额外计算时差
  • 代码更简洁,可读性更强,符合Python的"优雅"设计原则

内容的提问来源于stack exchange,提问作者Kev1n91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:48:43