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)
谢谢
你肯定想要使用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中滚动自己的日期/时间/日期时间结构.