在线程中使用time.strptime()时,我写的东西抛出了很多AttributeError
个异常。这似乎只发生在Windows上(不是在Linux上),但无论如何,在'googling中,似乎time.strptime()不被认为是线程安全的。
有没有更好的方法从字符串创建日期时间对象?当前代码如下:
val = DateFromTicks(mktime(strptime(val, '%B %d, %Y')))
但是,这会产生异常,因为它在一个线程内运行。
谢谢!
答案 0 :(得分:28)
根据bug report,如果在创建线程之前调用strptime
一次,则不会发生这种情况。我做了一些测试,似乎证实了这一点。因此,只需在初始化期间调用strptime
作为解决方法。
答案 1 :(得分:17)
针对此错误的另一种解决方法,您只需手动导入_strptime
以及日期时间
import _strptime
from datetime import datetime
# then, in threaded block
datetime.strptime(date, format)
答案 2 :(得分:0)
您是否尝试过自己手动同步?可能使用this recipe中的同步装饰器。
答案 3 :(得分:-3)
当我使用import datetime
时,datetime.datetime.strptime()
不再抛出异常。