Python 将字符串转换为日期时间以便与日期时间对象进行比较

标签 python python-2.7 datetime strptime

我有一个字符串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.531328repr(wfile)给出:

datetime.datetime(2006, 11, 30, 19, 8, 6, 531328)

问题:

我需要:

  1. 转换lfile转换为 Python 日期时间对象
  2. 比较lfilewfile并确定哪个日期时间更近

对于 1:

我只能使用 strptime 获得部分解决方案根据here 。这是我尝试过的:

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'> 。如果两者wfilelfile是 Python 日期时间对象(即,如果步骤 1. 成功),则 this工作?:

if wtime < ltime:
    print 'Linux file created after Windows file'
else:
    print 'Windows file created after Linux file'

问题 2

或者Python是否可以通过其他方式比较日期时间对象来确定两者中哪一个发生在另一个之后?

最佳答案

问题1

Python 处理微秒,而不是纳秒。您可以去掉时间的最后三个字符,将其转换为微秒,然后在末尾添加 .%f:

lfile = datetime.datetime.strptime(linx_file_dtime[:-3], '%Y-%m-%d_%H:%M:%S.%f')

问题2

是的,比较有效:

if wtime < ltime:
    ...

关于Python 将字符串转换为日期时间以便与日期时间对象进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625723/

相关文章:

python - Pandas isin() 函数无法正确识别数字匹配

Python:无法打印字典键和值

python - 从其他函数传递值和调用函数

python-2.7 - 在python中使用matplotlib的3D曲面图

php - 使用 php 和 mysql 数据库比较两个日期

javascript - 如何改进聊天应用程序以减轻服务器负担

python - 如何将数字添加(不附加)到元组中的现有值?

python-2.7 - 有没有办法使用Python在谷歌电子表格上自动生成图表?

mysql - 如何在日期时间 MM/DD/YYYY HH :MM:SS AM in MySQL 2008 中返回字符串 '2016-06-27 05:29:39'

javascript - 当 Laravel 中的日期和时间超过当前日期时间时,如何更改状态字段?