我正在从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)