Python中易于使用的时间戳

Python中易于使用的时间戳,python,datetime,time,timestamp,Python,Datetime,Time,Timestamp,我正在用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

我正在用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) 创建和使用时间戳对象的合适方法是什么


非常感谢

选项1:不要改变任何事情。用于解析时间戳

选项2:更改为
datetime
。您可以以相同的方式格式化时间戳,并使用来解析它们

这没什么关系,因为代码是相似的。搜索将涉及匹配的月、日、年等。为此使用
time
元组。或
datetime.datetime
对象。或者,搜索将涉及比较时间范围;使用
时间
以秒为单位进行此操作。或者使用
datetime
对象。它们都会起作用,而且——为此——它们的复杂性将相似

进行日期计算(未来90天,过去3个月等)是
datetime
的强项


一般来说,你会更喜欢DATETIME/CODE> >因为它做得更多,不涉及在简单的双时间和时间元组时间之间切换。

你可能想考虑改变。将有助于排序,例如,在不同系统之间传输数据。

感谢您的回复。我会花时间看datetime文档。完全同意。在使用不同的工具时,可读性更高,也不会引起太大的麻烦。我将在日志文件中使用ISO 8601,感谢日志中的建议!然而,问题实际上是关于我应该使用哪个python模块来处理日期和时间的问题。如果您有一种方法,我可以使用标准库中的python模块实现ISO 8601,我很高兴听到这个消息!Cheesere的问题正好相反,使用datetime模块在Python中解析ISO 8601:-注意关于查看datetime.datetime方法而不是datetime模块本身的注释。如果幸运的话,您会发现一个strftime()函数接受相同(或非常相似)的格式语法。我似乎记得我曾经做过这样的事情,我唯一要做的自定义事情就是增加分数秒(因为我的应用程序当时需要分数秒)。别忘了Pythons内置的日期/时间对象相对幼稚,总是假设一分钟内正好有60秒(一天3600*24秒)-例如,这忽略了闰秒。以下是Jochen Voss的“Python中的日期和时间表示法”: