时间戳 YYYY-MM-DDThh:mmTZD python

10 浏览
0 Comments

时间戳 YYYY-MM-DDThh:mmTZD python

我该如何以ISO 8601日期格式(YYYY-MM-DDThh:mmTZD)获取日期时间?例如:2019-02-26T09:30:46+03:00。\n我尝试使用以下代码:\n

from datetime import datetime
d = datetime.now()
d.isoformat()

\n但输出结果不正确:\n

\n\'2020-07-29T15:47:46.974744\'\n

0
0 Comments

问题的出现原因是在使用strftime()函数将datetime对象格式化为指定的字符串时,%z格式化指令返回的时区信息不符合预期。如果datetime对象是一个naive对象(即没有时区信息),那么%z会返回空字符串。

解决方法是在格式化字符串后面添加一个额外的代码来处理时区信息。可以使用[:-2]切片操作来截取字符串的前部分,然后再添加上":00"来表示时区信息为"+00:00"。这样就可以得到符合要求的格式化字符串。

下面是解决问题的代码:

d = datetime.now()
formatted_string = d.strftime("%Y-%m-%dT%H:%M:%S%z")
if not formatted_string[-2:]:
    formatted_string = formatted_string[:-2] + ":00"
print(formatted_string)

以上代码会输出类似于"2020-07-29T16:04:43+03:00"的格式化字符串,其中时区信息为"+03:00"。这样就解决了时区信息不正确的问题。

关于可用的格式化指令,可以参考https://strftime.org/这个网站,其中有详细的格式化指令列表可以供参考。

0