【问题标题】:Thread-safe equivalent to python's time.strptime()?线程安全等效于 python 的 time.strptime()?
【发布时间】:2010-03-11 17:33:30
【问题描述】:

在线程中使用 time.strptime() 时,我写的东西会引发很多 AttributeError 异常。这似乎只发生在 Windows(而不是 Linux)上,但无论如何——在谷歌上搜索时,似乎 time.strptime() 不被认为是线程安全的。

有没有更好的方法从字符串创建日期时间对象?当前代码如下:

val = DateFromTicks(mktime(strptime(val, '%B %d, %Y')))

但是,当它在线程内运行时会产生异常。

谢谢!

【问题讨论】:

    标签: python strptime


    【解决方案1】:

    根据bug report,如果您在创建线程之前调用strptime 一次,则不会发生这种情况。我做了一些测试,似乎证实了这一点。因此,只需在初始化期间调用 strptime 作为解决方法。

    【讨论】:

      【解决方案2】:

      此错误的另一种解决方法,您可以简单地手动导入 _strptime 以及日期时间

      import _strptime
      from datetime import datetime
      
      # then, in threaded block
      datetime.strptime(date, format)
      

      【讨论】:

        【解决方案3】:

        您是否尝试过自己手动同步?可能使用来自this recipe 的同步装饰器。

        【讨论】:

          【解决方案4】:

          当我使用import datetime 时,datetime.datetime.strptime() 不再抛出异常。

          【讨论】:

            猜你喜欢
            • 2011-05-02
            • 2016-03-04
            • 2012-03-27
            • 2011-11-04
            • 1970-01-01
            • 1970-01-01
            • 2019-07-23
            • 2014-01-09
            • 1970-01-01
            相关资源
            最近更新 更多