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

如何在Python中将特定格式的当前时间转换为epoch时间?

特定格式时间转Epoch毫秒时间解决方案

问题原因

strftime('%s')仅支持输出当前时间的秒级Epoch,无法解析带时区、毫秒的复杂时间字符串,且不支持通过该格式符逆向转换时间字符串到Epoch,因此会触发格式异常。

解决方案(Python示例)

针对「Wednesday, November 16, 2022 4:21:33.082 PM GMT+05:30」这种格式,需先处理时区格式,再用datetime.strptime解析,最后转换为毫秒级Epoch:

from datetime import datetime

time_str = "Wednesday, November 16, 2022 4:21:33.082 PM GMT+05:30"
# 处理时区格式:去掉GMT,将+05:30转为+0530(符合strptime的%z格式要求)
processed_time = time_str.replace("GMT", "").replace(":", "", 1)
# 定义匹配格式字符串
fmt = "%A, %B %d, %Y %I:%M:%S.%f %p %z"
# 解析为datetime对象
dt = datetime.strptime(processed_time, fmt)
# 转换为毫秒级Epoch(timestamp()返回秒级浮点数,乘1000后取整)
epoch_ms = int(dt.timestamp() * 1000)
print(epoch_ms)  # 输出:1668595893082

格式符说明

  • %A:星期全称(如Wednesday)
  • %B:月份全称(如November)
  • %d:两位日期(如16)
  • %Y:四位年份(如2022)
  • %I:12小时制的小时数(如04)
  • %M:两位分钟(如21)
  • %S:两位秒数(如33)
  • %f:六位毫秒数(输入为三位时,strptime会自动补零)
  • %p:AM/PM标识
  • %z:±HHMM格式的时区偏移(处理后+0530符合要求)

解决方案(JavaScript示例)

JavaScript的Date构造函数可直接解析该格式,通过getTime()获取毫秒级Epoch:

const timeStr = "Wednesday, November 16, 2022 4:21:33.082 PM GMT+05:30";
const epochMs = new Date(timeStr).getTime();
console.log(epochMs); // 输出:1668595893082

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:45:15