【发布时间】:2016-12-02 05:13:15
【问题描述】:
我有一个字符串lfile,其中包含一个日期时间(type(lfile) 给出<type 'str'>)和一个Python 日期时间对象wfile。代码如下:
import os, datetime
lfile = '2005-08-22_11:05:45.000000000'
time_w = os.path.getmtime('{}\\{}.py' .format('C:\Temp_Readouts\RtFyar','TempReads.csv'))
wfile = datetime.datetime.fromtimestamp(time_w)
wfile 包含此 2006-11-30 19:08:06.531328 和 repr(wfile) 给出:
datetime.datetime(2006, 11, 30, 19, 8, 6, 531328)
问题:
我需要:
- 将
lfile转换为 Python 日期时间对象 - 比较
lfile和wfile并确定哪个日期时间更近
对于 1.:
根据here,我只能使用strptime 获得部分解决方案。这是我尝试过的:
lfile = datetime.datetime.strptime(linx_file_dtime, '%Y-%m-%d_%H:%M:%S')
输出是:
`ValueError: unconverted data remains: .000`
问题 1
似乎strptime() cannot 处理纳秒。如何告诉 strptime() 忽略最后 3 个零?
对于 2.:
当我使用type(wfile) 时,我得到<type 'datetime.datetime'>。如果 wfile 和 lfile 都是 Python 日期时间对象(即如果步骤 1. 成功),那么 this 会起作用吗?:
if wtime < ltime:
print 'Linux file created after Windows file'
else:
print 'Windows file created after Linux file'
问题 2
或者还有其他方法可以让 Python 比较日期时间对象以确定两者中的哪一个在另一个之后发生?
【问题讨论】:
标签: python python-2.7 datetime strptime