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

Python中如何将自定义时间戳转换为datetime.now()格式

解决方案

要将提取到的时间戳转换为目标格式,借助Python的datetime模块即可完成解析与格式化,具体实现如下:

1. 核心思路

  • 用datetime.strptime()按原时间格式解析字符串,将其转换为datetime对象
  • 用datetime.strftime()将datetime对象格式化为你需要的2022-11-03 01:06:09.190000格式,该格式与datetime.now()的输出完全一致

2. 完整代码示例

from datetime import datetime
import re

# 你的现有正则(可优化为更精准的版本)
reTimestamp = r'\d{2}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}:\d{3}'
# 模拟TXT文件中的一行内容
line = "[03/11/22 01:05:06:172] 其他数据内容"

# 提取时间戳
timestamp_list = re.findall(reTimestamp, line.strip())

if timestamp_list:
    raw_ts = timestamp_list[0]
    # 解析原始时间格式:日/月/两位年 时:分:秒:三位毫秒
    parsed_dt = datetime.strptime(raw_ts, '%d/%m/%y %H:%M:%S:%f')
    # 转换为目标格式:四位年-月-日 时:分:秒.六位微秒(自动补零)
    formatted_ts = parsed_dt.strftime('%Y-%m-%d %H:%M:%S.%f')
    print(formatted_ts)  # 输出:2022-11-03 01:05:06.172000

3. 优化建议:更精准的正则匹配

原正则可能误匹配到非方括号内的类似格式字符串,建议修改正则直接捕获方括号内的时间戳,避免错误:

# 直接捕获方括号内的时间戳内容
reTimestamp = r'\[(\d{2}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}:\d{3})\]'
match_result = re.search(reTimestamp, line.strip())
if match_result:
    raw_ts = match_result.group(1)
    # 后续解析与格式化步骤同上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:35:26