我正在使用Python编写日志类型的应用程序。该应用程序基本上允许用户在日志中写入条目,并添加时间戳以便以后查询日志。
截至目前,我使用time.ctime()
函数生成视觉上友好的时间戳。因此日记帐分录如下:
Thu Jan 21 19:59:47 2010 Did something
Thu Jan 21 20:01:07 2010 Did something else
现在,我希望能够使用这些时间戳进行一些搜索/查询。我需要能够搜索“2010”,“2010年2月”或“2010年2月23日”。
我的问题是:
1)我应该使用什么时间模块:time
vs datetime
?
2)创建和使用时间戳对象的适当方法是什么?
非常感谢!
答案 0 :(得分:9)
您可能需要考虑更改为ISO 8601。例如,有助于排序,或在不同系统之间传输数据。
答案 1 :(得分:7)
选项1:不要改变任何东西。使用time.strptime来解析时间戳。
选项2:更改为datetime
。您可以使用相同的方式格式化时间戳,并使用datetime.strptime来解析它们。
没关系,因为代码类似。搜索将涉及匹配数月,日或年或某些此类。为此使用time
元组。或datetime.datetime
个对象。或者,搜索将涉及比较时间范围;在几秒钟内使用time
。或者使用datetime
个对象。它们都会起作用 - 为此 - 它们的复杂性会相似。
进行日期计算(将来90天,过去3个月等)是datetime
的强项。
一般来说,datetime
通常会更开心,因为它会更多,并且不涉及在简单的双倍时间和时间元组时间之间切换。