将linux日期输出转换为python datetime对象的最佳方法是什么?
[root@host]$ date
Wed Jun 4 19:01:58 CDT 2014
请注意,Jun和'4'之间有多个空格
dateRaw = 'Wed Jun 4 19:01:58 CDT 2014'
sysDate = re.sub(' +',' ',dateRaw.strip())
sysDateArr = sysDate.split(' ')
sysMonth = sysDateArr[1]
sysDay = sysDateArr[2]
sysYear = sysDateArr[5]
print datetime.strptime(sysMonth+sysDay+sysYear), "%b%d%Y")
必须有一种不那么乏味的方式......
答案 0 :(得分:1)
应该没有必要将所有内容拆分并重新加入:
import datetime
date = 'Wed Jun 4 19:01:58 CDT 2014'
datetime.datetime.strptime(date.replace("CDT",""), '%a %b %d %H:%M:%S %Y')
应该有效。有关所有日期字符串解析格式,请参阅python docs [1]。
您还可以使用python-dateutil库[2],这样更容易!:
from dateutil import parser
date = 'Wed Jun 4 19:01:58 CDT 2014'
parser.parse(date)
[1] https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior