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

Log*_*nch 1 html python time time-format python-3.x

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

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

  • 1553541590.723329
  • 1553541590.723329

虽然 HTML 需要这种格式:

  • 2001-09-17T05:59:00+01:00
  • 2013-09-16T19:08:47+01:00

对于此事我有两个疑问:

  1. 这两种时间格式的名称是什么?
  2. 如何更改这些方法的输出以使其看起来像所需的 HTML 格式?

谢谢。

ASa*_*ers 5

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

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'
Run Code Online (Sandbox Code Playgroud)

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