2011-11-08 20 views
2

我正在從csv文件中讀取數據,並且其中包含日期元素,但日期中存在不一致。更改(例如)8至08 ... python

例如:有時日期元素就像是1/1/2011,有時它像01/01/2011

因爲我後來繪製這個數據。這會導致噪音很大,我地塊。以下是我的約會班。你能幫助我在哪裏以及如何修改代碼以獲取日期的形式01/01/2011

import re 
class Date: 
def __init__(self, input_date): 
    self._input_date = input_date 
    self._date = None 
    self._month = None 
    self._year = None 
    self._hour = None 
    self._min = None 


def setDate(self): 
    date = self._input_date 
    #date = re.findall('w+',date) 
    date = self.__mySplit() 
    #print"len ",len(date) 
    assert (len(date) >= 3) #has atleast dd/mm/yy 
    #dateLength = len(date[0]) 

    self._month = int(date[0]) 
    self._date = int(date[1]) 
    self._year = int(date[2]) 
    if (len(date) ==5): 
     self._hour = int(date[3]) 
     self._min = int(date[4]) 

def __mySplit(self): #splitting the date by delimiters.. 
    res = [self._input_date] 
    #print res 
    seps = [' ','/',':'] 
    for sep in seps: 
     s,res = res,[] 
     for seq in s: 
      res += seq.split(sep) 
      #print res 
    return res 

感謝

回答

7

你一定要使用datetime。下面是一些代碼,會從任何字符串類型得到一個日期時間:

from datetime import datetime 

def strToDatetime(dateStr): 
    return datetime.strptime(dateStr, "%d/%m/%Y") 

然後,您可以打印datetime出你想要的格式:

strToDatetime("1/3/2011").strftime("%d/%m/%Y) 
>'01/03/2011' 

你永遠不應該需要推出自己的日期/時間/日期時間結構在python中。

+1

什麼亞倫說。爲此使用內置工具。 –

+0

謝謝你的魅力 – Fraz

相關問題