0

datetime.strptime() を使用して、完全な英語で書かれた月から月番号を取得しています。これをいくつかの PySide Qt インターフェイスと組み合わせて使用​​したいと考えています。ただし、QApplication を開始するとすぐに月の認識が壊れるようです。

最小限の作業例 (変更されないことを示すためにロケールを出力しています):

import sys, datetime

from PySide.QtCore import *
from PySide.QtGui import *

import locale

print(locale.getlocale())
full_date = 'February'
print(datetime.datetime.strptime(full_date,'%B'))

出力:

('en_US', 'UTF-8')
1900-02-01 00:00:00

QApplication を起動して同じことを行うと、次のようになります。

import sys, datetime

from PySide.QtCore import *
from PySide.QtGui import *

import locale

qt_app = QApplication(sys.argv)

print(locale.getlocale())
full_date = 'February'
print(datetime.datetime.strptime(full_date,'%B'))

出力:

('en_US', 'UTF-8')
Traceback (most recent call last):
  File "my_timedate.py", line 12, in <module>
    print(datetime.datetime.strptime(full_date,'%B'))
  File "/usr/lib/python3.5/_strptime.py", line 510, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/usr/lib/python3.5/_strptime.py", line 343, in _strptime
    (data_string, format))
ValueError: time data 'February' does not match format '%B'

何が起こっている?QApplication の起動後に動作が停止するのはなぜですか?

4

0 に答える 0