You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中如何将'23:59:05.823Z'转换为'10:00 AM'格式?

嘿,这个需求用Python的datetime模块就能轻松搞定!我给你分两种常见场景来说明,确保你能覆盖自己的使用情况:

方法一:仅格式转换(不处理时区)

如果你只需要把拿到的时间字符串转换成12小时制格式,不需要考虑时区差异(比如你确认这个时间已经是你需要的时区),可以直接解析后格式化:

from datetime import datetime

# 你拆分得到的时间部分
time_str = '23:59:05.823Z'

# 解析时间字符串:%H是24小时制小时,%f匹配微秒,Z直接作为字符匹配
parsed_time = datetime.strptime(time_str, '%H:%M:%S.%fZ')

# 格式化为12小时制:%I是12小时制小时(01-12),%p输出AM/PM
formatted_time = parsed_time.strftime('%I:%M %p')

print(formatted_time)  # 输出: 11:59 PM

小细节调整:

  • 如果你的时间字符串没有微秒(比如'23:59:05Z'),把解析格式改成'%H:%M:%SZ'就行
  • 要是想去掉小时的前导零(比如把09:00 AM变成9:00 AM),可以在类Unix系统用'%-%I:%M %p',Windows系统用'%#I:%M %p';或者手动处理:formatted_time = parsed_time.strftime('%I:%M %p').lstrip('0').replace(' 0', ' ')(避免把12:00变成2:00)

方法二:考虑时区转换(适配UTC转本地/指定时区)

因为Z代表UTC时间,如果你需要把它转换成本地时区或者其他时区的12小时制时间,可以结合时区模块处理:

from datetime import datetime, timezone

time_str = '23:59:05.823Z'

# 解析为UTC时区的时间对象
utc_time = datetime.strptime(time_str, '%H:%M:%S.%fZ').replace(tzinfo=timezone.utc)

# 转换为本地时区(自动识别系统时区)
local_time = utc_time.astimezone()

# 或者指定具体时区(Python 3.9+可用zoneinfo模块)
# from zoneinfo import ZoneInfo
# local_time = utc_time.astimezone(ZoneInfo('Asia/Shanghai'))  # 东八区

# 格式化输出
formatted_time = local_time.strftime('%I:%M %p')
print(formatted_time)  # 比如东八区会输出 07:59 AM

这样就能准确处理时区差异后的12小时制格式了~

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

火山引擎 最新活动