Datetime 文件上的python日期要去掉微秒

Datetime 文件上的python日期要去掉微秒,datetime,python-3.x,Datetime,Python 3.x,我在Python日期处理方面真的一事无成。我正在访问的csv文件的datetime为这种格式(每行是一个单独的数据点) 我想去掉01:00:01.504424(时间),只留下日期部分,这样我就可以检测到日期的变化。必须有一个简单的方法来做到这一点,但我似乎无法得到它。我甚至试着把它全部加载到一个元组中,直到我意识到我一定是把情节弄丢了 tryagain = datetime.strptime(prev_day, "%Y-%m-%d %H:%M:%S.%f") t = tryagain.timet

我在Python日期处理方面真的一事无成。我正在访问的csv文件的datetime为这种格式(每行是一个单独的数据点)

我想去掉01:00:01.504424(时间),只留下日期部分,这样我就可以检测到日期的变化。必须有一个简单的方法来做到这一点,但我似乎无法得到它。我甚至试着把它全部加载到一个元组中,直到我意识到我一定是把情节弄丢了

tryagain = datetime.strptime(prev_day, "%Y-%m-%d %H:%M:%S.%f")
t = tryagain.timetuple()
for i in t:
    print(i)

我不敢相信去除微秒是很难的,只是我似乎无法让它工作

提供的日期时间字符串的
%Y-%m-%d%H:%m:%S.%f
格式正确。获取
date()
组件,如果需要,再次将其格式化为字符串:

>>> prev_day = "2016-01-11 01:00:01.504424"
>>> prev_day_date = datetime.strptime(prev_day, "%Y-%m-%d %H:%M:%S.%f")
>>> prev_day_date.date()
datetime.date(2016, 1, 11)
>>> prev_day_date.strftime("%Y-%m-%d")
'2016-01-11'
或者,您可以将其按空间分割,得到第一部分:

>>> prev_day.split()[0]
2016-01-11
>>> datetime.strptime(prev_day.split()[0], "%Y-%m-%d")
datetime.datetime(2016, 1, 11, 0, 0)

非常感谢你,Alecxe,出于某种原因,我认为它会比这更干净,但我知道发生了什么,没有你的帮助,我无法到达那里。再次感谢您,祝您度过愉快的一周。@theakson:与
.date()
调用相比,哪种更干净的方法可以只获取日期部分?JfSebastian我是Python新手,所以这两个调用strtime-then-strftime对我来说并不明显@alecxe让我走上了正确的道路。我不知道有什么“更干净”的方法可以做到这一点,因为我的想法倾向于将“2016-01-11 01:00:01.504424”读入元组的调用,但alecxe的方法更好。
>>> prev_day.split()[0]
2016-01-11
>>> datetime.strptime(prev_day.split()[0], "%Y-%m-%d")
datetime.datetime(2016, 1, 11, 0, 0)