没有毫秒的Python Timenow?

时间:2016-01-05 01:28:30

标签: python datetime

我将时间写入XML文件,然后回来将其与当前时间进行比较。我之前没有使用过Python,格式化时间似乎很奇怪。

我设法将一些东西放在一起如果我将时间表写入XML而没有毫秒。

如果XML的时间戳如2016-01-05 00:39:20那么这可行:

tree = ET.parse('C:\logs\XMLFILENAME.xml')
    for matchlisting in tree.findall('Found'):
        age = matchlisting.find('FoundTime').text
    dnow=datetime.datetime.now()
    print dnow

    d2 = datetime.datetime.strptime(age, '%Y-%m-%d %H:%M:%S')

    #print d2
    print(dnow-d2)

但默认情况下,time.now没有给出类似2016-01-05 00:39:20的内容,它会像2016-01-05 00:39:20.xxxx一样在背面添加毫秒数。< / p>

我没有看到文档中使用strptime来处理它的一个选项,或者在没有毫秒的情况下编写时间的方法。

我希望有一些简单的语法来解决其中一个问题。我非常感谢这里的指针我已经花了几个小时才能做出相当直接的思考。

1 个答案:

答案 0 :(得分:2)

显示str对象的默认转换为datetime包括微秒。如果您不想看到它,请使用strftime指定自定义格式:

>>> from datetime import datetime
>>> d = datetime.now()
>>> d
datetime.datetime(2016, 1, 4, 17, 31, 32, 976902)
>>> print(d)
2016-01-04 17:31:32.976902
>>> print(d.strftime('%Y-%m-%d %H:%M:%S'))
2016-01-04 17:31:32

datetime个对象还支持format的自定义格式:

>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2016-01-04 17:31:32'

此外,微秒的格式化字符为%f

>>> print(d.strftime('%Y-%m-%d %H:%M:%S.%f'))
2016-01-04 17:31:32.976902

参考:strftime() and strptime() Behavior