如何将 "getctime()" 和 "getmtime()" 的输出转换为 HTML 的 "published_time" 和 "modified_time" META 标签所需的时间格式?

How do I convert the output of "getctime()" and "getmtime()" into the time format required by HTML's "published_time" and "modified_time" META tags?

我网站的文章是用.md个文件写的,为了获取这些文件的创建和修改时间我使用os.path.getctime()os.path.getmtime()方法。

这些方法的输出如下所示:

虽然 HTML 需要这种格式:

关于这件事我有两个问题:

  1. 这两种时间格式的名称是什么?
  2. 如何将这些方法的输出更改为所需的 HTML 格式?

谢谢。

1) os.path 文档表明 os.path.getctime()os.path.getmtime() return 都是一个浮点数,表示自纪元以来的秒数。这似乎与您得到的数字一致。

2) 最简单的方法是转换为一个对象来表示日期,然后提供您想要的格式。在这里,我使用 datetimestrftime() 来输出所需格式的字符串。

import datetime

>>>> datetime.datetime.fromtimestamp(1553541590.723329)
datetime.datetime(2019, 3, 25, 12, 19, 50, 723329)

>>>> datetime.datetime.fromtimestamp(1553541590.723329).strftime('%Y-%m-%dT%H:%M:%S')
'2019-03-25T12:19:50'

您可能会发现最简单的方法是在末尾添加时区字符串,因为将时区添加到日期时间对象有点复杂。如果你确实想完成它,你需要创建一个 tzinfo 对象并使用它来更新 datetime.astimezone(tz) 对象的 datetime。这是 adding a timezone to a datetime object.

的一个很好的资源