私は、いくつかの場所/ログファイルから来る3つのフォーマットの可能性があるタイムスタンプを解析する、より簡潔で高速な方法があるのか疑問に思っています。以下のコードは私が現在持っているものですが、非常に醜い作業バージョンであり、非常に遅いです。これを達成するためのもっとpythonicと高速な方法がありますか?タイムストリングを解析するより良い方法
FORMATS = ["%Y-%m-%d %H:%M:%S" ,
"%Y%m%d_%H.%M.%S" ,
"%a %b %d %H:%M:%S %Y"]
def _hacktime(self, t):
# CAUTION:
# The nastiest time hack of all TIME
#
try:
t = time.mktime(time.strptime(t, self.FORMATS[0]))
except:
try:
t = time.mktime(time.strptime(t, self.FORMATS[1]))
except:
try:
t = time.mktime(time.strptime(' '.join([t,
time.strftime('%Y')]),
self.FORMATS[2]))
except Exception as e:
print('could not convert time %s: %s' % (t, e))
t = time.time()
return [t, time.ctime(t)]
なぜ、第3のフォーマットの時間文字列に '%Y'を追加しますか?書式文字列から単純に省略する方が簡単ではないでしょうか? –