2014-02-19 43 views
0

我有這樣的數據。python解析Java日曆到isodate

startDateTime: {'timeZoneID': 'America/New_York', 'date': {'year': '2014', 'day': '29', 'month': '1'}, 'second': '0', 'hour': '12', 'minute': '0'} 

這只是一個屬性的表示。像這樣我有5個其他屬性。 LastModified,創建等。

我想推導爲ISO日期格式yyyy-mm-dd hh:mi:ss。這是做這件事的正確方法嗎?

def parse_date(datecol): 
    x=datecol; 
    y=str(x.get('date').get('year'))+'-'+str(x.get('date').get('month')).zfill(2)+'-'+str(x.get('date').get('day')).zfill(2)+' '+str(x.get('hour')).zfill(2)+':'+str(x.get('minute')).zfill(2)+':'+str(x.get('second')).zfill(2) 
    print y; 
    return; 

回答

0

這一工程,但我會說這是清潔劑使用字符串格式化操作在這裏:

def parse_date(c): 
    d = c["date"] 
    print "%04d-%02d-%02d %02d:%02d:%02d" % tuple(map(str, (d["year"], d["month"], d["day"], c["hour"], c["minute"], c["second"]))) 

或者,您可以使用time模塊安裝到您的字段轉換成一個Python時間值,然後使用strftime進行格式化。但請記住時區。

+0

我對解決方案有點困惑。順便說一句,它不工作,並與''TypeError:%d格式失敗:一個數字是必需的,而不是str「'。 – user3327034

+0

忘記了他們是你輸入的字符串。對於那個很抱歉。我更新了這個例子。 –