首页 > 解决方案 > 如何在python中将时间戳转换为特定的数据时间格式?

问题描述

from datetime import datetime
import time
timestamp = 1595059353398/1000
dt_object = datetime.fromtimestamp(timestamp)
date_time = dt_object.strftime("%m/%d/%Y, %H:%M:%S")

print(date_time)

我得到的输出是 07/18/2020, 13:32:33 但我需要输出应该是:7/18/2020, 1:32:33 PM 这种格式

标签: pythondatetimeautomation

解决方案


请参阅下面的解决方案和解释/咨询说明。

解决方案

from datetime import datetime
import re

format = '%m/%d/%Y %I:%M %p'
timestamp = 1595059353398/1000
dt_object = datetime.fromtimestamp(timestamp)
date_time = dt_object.strftime(format)
date_time = re.sub('(^0)|((?<=\/)0)|(?<=\s)0', '', date_time)
print(date_time)

格式

format中,%I指定 12 小时制并%p指定区域设置相当于 AM 或 PM - 请参阅datetimedocs

re去除前导零

该解决方案利用内置模块替换开头 ()、字符串 () 内的任何实例之后或空格 ( ) 之后re可能出现的任何前导零- 根据您的问题中描述的所需输出。(^0)'/'((?<=\/)0)(?<=\s)0

我会考虑更多地考虑您的要求并评估您是否真的需要删除前导零 - 根据原始帖子中描述的所需输出 - 使用固定长度(即允许前导零)在许多用途中肯定具有优势案例。

如果您决定不再删除生成的字符串中的前导零,您可以简单地省略该行date_time = re.sub(*args)


推荐阅读