【问题标题】:Easy to use time-stamps in Python在 Python 中易于使用的时间戳
【发布时间】:2011-01-08 19:19:48
【问题描述】:

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

非常感谢!

【问题讨论】:

    标签: python datetime time timestamp


    【解决方案1】:

    您可能需要考虑更改为ISO 8601。例如,将有助于排序,或在不同系统之间传输数据。

    【讨论】:

    • 完全同意。使用不同的工具时,可读性更高,也不会大惊小怪。
    • 我将在日志文件中使用 ISO 8601,感谢日志的建议!但是,问题实际上是关于我应该使用哪个 python 模块来处理日期和时间的问题。如果您有办法使用标准库中的 python 模块实现 ISO 8601,我将很高兴听到它!干杯
    • 这是一个相反的问题,使用 datetime 模块在 Python 中解析 ISO 8601:stackoverflow.com/questions/969285/… - 请注意关于查看 datetime.datetime 方法而不是 datetime 模块本身的评论。如果幸运的话,您会发现一个 strftime() 函数接受相同(或非常相似)的格式语法。我似乎记得我曾经做过这样的事情,而我唯一要做的自定义事情就是添加小数秒(因为当时我的应用程序需要它们)。
    • 不要忘记 Python 的内置日期/时间对象相对幼稚,并且总是假设一分钟正好有 60 秒(一天 3600*24 秒)——这忽略了闰秒例如。
    • 这是来自 Jochen Voss 的“Python 中的日期和时间表示”:seehuhn.de/pages/pdate
    【解决方案2】:

    选项 1:不要更改任何内容。使用time.strptime 解析您的时间戳。

    选项 2:更改为 datetime。你可以用同样的方法来格式化时间戳,然后使用datetime.strptime来解析它们。

    没关系,因为代码是相似的。搜索将涉及匹配月、日或年等。为此使用time 元组。或datetime.datetime 对象。或者,搜索将涉及比较时间范围;在几秒钟内使用time。或使用datetime 对象。它们都可以工作,而且——为此——它们的复杂性相似。

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

    一般来说,datetime 会让您更满意,因为它功能更多,并且不需要在简单的双倍时间和时间元组时间之间切换。

    【讨论】:

    • 感谢您的精彩回复。我会花时间浏览日期时间文档。
    猜你喜欢
    • 1970-01-01
    • 2017-12-22
    • 2016-12-01
    • 2020-09-28
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多