Как мне преобразовать выходные данные "getctime ()" и "getmtime ()" в формат времени, требуемый для HTML-тегов META "publ_time" и "ified_time "? - PullRequest
0 голосов
/ 27 марта 2019

Статьи моего сайта написаны с использованием файлов .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?

Спасибо.

1 Ответ

1 голос
/ 27 марта 2019

1) Документация os.path указывает, что и os.path.getctime(), и os.path.getmtime() возвращают число с плавающей запятой, указывающее секунды с начала эпохи.Кажется, это согласуется с числами, которые вы получаете.

2) Самое простое, что можно сделать, - это преобразовать объект, представляющий дату, а затем указать желаемый формат.Здесь я использовал datetime с strftime() для вывода строки нужного формата.

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'

Возможно, вам будет проще всего просто добавить строку часового пояса в конце после добавлениячасовой пояс к объекту datetime немного сложен.Если вы хотите пройти через это, вам нужно создать объект tzinfo и использовать его для обновления объекта datetime, используя datetime.astimezone(tz).Вот очень хороший ресурс для добавления часового пояса к объекту datetime .

...