изменить (например) 8 на 08 ... python - PullRequest
2 голосов
/ 08 ноября 2011

Я читаю данные из 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

Спасибо

1 Ответ

7 голосов
/ 08 ноября 2011

Вы определенно хотите использовать datetime.Вот некоторый код, который получит 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...