在Python中使用简单的时间戳

3 投票
2 回答
2208 浏览
提问于 2025-04-15 18:24

我正在用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还是datetime?

2) 创建和使用时间戳对象的合适方法是什么?

非常感谢!

2 个回答

9

你可能想要考虑使用ISO 8601这种格式。这种格式可以帮助你更方便地进行排序,比如说,或者在不同的系统之间传输数据时也会更顺利。

7

选项一:别改动什么。可以用 time.strptime 来解析你的时间戳。

选项二:换成 datetime。你可以用同样的方式格式化时间戳,并且可以用 datetime.strptime 来解析它们。

其实这两种方法差别不大,因为代码看起来会很相似。搜索的时候需要匹配月份、日期或年份之类的内容。可以用 time 元组来处理这些。或者用 datetime.datetime 对象。再或者,搜索的时候需要比较时间范围;这时可以用秒数来表示时间,或者用 datetime 对象。两种方法都能用,而且在复杂度上差不多。

进行日期计算(比如未来90天、过去3个月等)时,datetime 更加擅长。

总的来说,使用 datetime 通常会让你更开心,因为它功能更多,而且不需要在简单的时间和时间元组之间来回切换。

撰写回答