Skip to main content
 首页 » 编程设计

python之datetime.strptime 在 PyQt4 QtGui.QWidget 继承类中不起作用

2025年05月04日30kuangbin

例如我有这个简单的类:

from PyQt4 import QtGui, QtCore 
import sys 
from datetime import datetime 
 
print datetime.strptime('Wed, 06-Feb-2014 12:05:12', '%a, %d-%b-%Y %H:%M:%S') 
 
class Application(QtGui.QWidget): 
 
    def __init__(self): 
      super(Application, self).__init__() 
      print datetime.strptime('Wed, 06-Feb-2014 12:05:12', '%a, %d-%b-%Y %H:%M:%S') 
 
def main(): 
 
    app = QtGui.QApplication(sys.argv) 
    ex = Application() 
    sys.exit(app.exec_()) 
 
 
if __name__ == '__main__': 
    main()   

当我运行它时,我得到以下输出:

2014-02-06 12:05:12 
Traceback (most recent call last): 
  File "vkPlayListSync.py", line 23, in <module> 
    main()     
  File "vkPlayListSync.py", line 18, in main 
    ex = Application() 
  File "vkPlayListSync.py", line 12, in __init__ 
    print datetime.strptime('Wed, 06-Feb-2014 12:05:12', '%a, %d-%b-%Y %H:%M:%S') 
  File "/usr/lib/python2.7/_strptime.py", line 325, in _strptime 
    (data_string, format)) 
ValueError: time data 'Wed, 06-Feb-2014 12:05:12' does not match format '%a, %d-%b-%Y %H:%M:%S' 

所以第一行是 strptime,但是第二次调用类 __init()__ 方法会抛出错误。我没有足够的 Python 和 PyQt 经验,所以无法理解如何解决这个问题。我还没有在 stackoverflow 或谷歌中找到答案。

请您参考如下方法:

QApplication 启动正在更改您的语言环境,这样 'Wed, 06-Feb-2014 12:05:12' 不再是有效日期(即工作日和月份名称是另一种语言)。尝试使用 LC_ALL="C" 运行您的应用程序。