转换TZ格式



我正在从API中读取一些信息,时间显示为:

2021-01-29T13:29:19.668Z

但是,我希望它读作:

Jan 29, 2021 @ 1:29pm

是否有办法在库中做到这一点?或者我必须自己创建一些东西。

from datetime import datetime
string_time = "2021-01-29T13:29:19.668Z"
# see https://strftime.org/ for definitions of strftime directives
dt_format = "%Y-%m-%dT%H:%M:%S.%fZ"
output_format = "%b %d, %Y @ %-I:%-M%p" # the %p is uppercase AM or PM
output = datetime.strftime(datetime.strptime(string_time, dt_format), output_format)
# lower case the last 2 characters of output
# and join with all characters except the last 2
print(''.join((output[:-2], output[-2:].lower())))

输出:Jan 29, 2021 @ 1:29pm

您可能想要探索钟摆。pendulum是Python的datetime变得简单!

直接安装:

$ pip install pendulum

具体用法:

import pendulum
dt = pendulum.parse("2021-01-29T13:29:19.668Z")
print(dt.format("MMM DD, YYYY @ h:mm A"))

输出:

Jan 29, 2021 @ 1:29 PM

编辑:要获得EST中的时间(修改时间),只需这样做:

import pendulum
dt = pendulum.parse("2021-01-29T13:29:19.668Z")
print(dt.in_tz("America/Toronto").format("MMM DD, YYYY @ h:mm A"))

输出:

Jan 29, 2021 @ 8:29 AM

但是,如果您不想修改输出而只想设置时区,请尝试这样做:

dt = pendulum.parse("2021-01-29T13:29:19.668Z").set(tz="America/Toronto")
print(dt.timezone)
print(dt)
print(dt.format("MMM DD, YYYY @ h:mm A"))

输出:

Timezone('America/Toronto')
2021-01-29T13:29:19.668000-05:00
Jan 29, 2021 @ 1:29 PM

我使用了datetime模块。并使用split函数将日期和时间以及其他内容分开

import datetime
DT = "2021-01-29T13:29:19.668Z"
date,time = DT.split("T")
Year, Month, Day = date.split("-")
Hour, Minute, Seconds = time.split(":")
x = datetime.datetime( int(Year), int(Month), int(Day), int(Hour), int(Minute) )
x = x.strftime("%b %d, %Y @ %I:%M %p")
output = ''.join(( x[:-2], x[-2:].lower() ))
print(output)

最新更新