python - 如何将“getctime()”和“getmtime()”的输出转换为 HTML 的“published_time”和“modified_time”META 标签所需的时间格式?
问题描述
我网站的文章是使用.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
关于这个问题,我有两个问题:
- 这两种时间格式的名称是什么?
- 如何将这些方法的输出更改为所需的 HTML 格式?
谢谢。
解决方案
1) os.path文档表明两者都os.path.getctime()
返回os.path.getmtime()
一个浮点数,表示自纪元以来的秒数。这似乎与您获得的数字一致。
2) 最简单的方法是转换为对象来表示日期,然后提供您想要的格式。在这里,我使用datetime withstrftime()
来输出所需格式的字符串。
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)
. 这是将时区添加到日期时间对象的一个很好的资源。
推荐阅读
- javascript - 使用 Mocha 测试时出现错误“步骤未定义”以及教程中的“然后只需使用 --require mocha-steps 运行 mocha”是什么意思
- graphql - Why are GraphQL queries POST requests even when we are trying to fetch data and not update/submit new data?
- r - 合并具有不同列数的数据框
- karate - If then else implementation to select baseURL in Karate DSL
- java - Java中的颜色猜谜游戏
- visual-studio-code - 有没有办法在 VS Code 中禁用“MDN References Intellisense”弹出窗口(用于 HTML 和 CSS)?
- excel - 创建 XSD 架构
- navigationview - NavigationLink 在模拟器上工作,但在真实设备 iPhone 上不工作
- javascript - 如何等待anime.js动画完成按钮点击?
- docker - 在 Docker 容器启动期间设置环境变量(在 AWS 上)