改变(例如)8到08 ... python

Moh*_*hit 2 python algorithm date file

我正在读取csv文件中的数据,其中有日期元素,但日期不一致.

例如:有时日期元素就像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
Run Code Online (Sandbox Code Playgroud)

谢谢

Aar*_*our 7

你肯定想要使用datetime.这里有一些代码可以从任何字符串类型获取日期时间:

from datetime import datetime

def strToDatetime(dateStr):
    return datetime.strptime(dateStr, "%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用datetime所需的格式打印输出:

strToDatetime("1/3/2011").strftime("%d/%m/%Y)
>'01/03/2011'
Run Code Online (Sandbox Code Playgroud)

您永远不需要在python中滚动自己的日期/时间/日期时间结构.