Python 将unicode转换为日期时间格式

Python 将unicode转换为日期时间格式,python,datetime,unicode,Python,Datetime,Unicode,函数以unicode格式返回日期和时间 u'2014-03-06T04:38:51Z' 我希望将其转换为日期和时间格式,并将其与当前日期时间相减,以获得两者之间的天数 提前感谢检查字符串是否为unicode >>> import types >>> type(u'2014-03-06T04:38:51Z') is types.UnicodeType True 将字符串转换为日期时间: >>> import datetime >&g

函数以unicode格式返回日期和时间

 u'2014-03-06T04:38:51Z'
我希望将其转换为日期和时间格式,并将其与当前日期时间相减,以获得两者之间的天数


提前感谢

检查字符串是否为unicode

>>> import types
>>> type(u'2014-03-06T04:38:51Z') is types.UnicodeType
True
字符串转换为日期时间

>>> import datetime
>>> datetime.datetime.strptime(u'2014-03-06T04:38:51Z', '%Y-%m-%dT%H:%M:%SZ')
datetime.datetime(2014, 3, 6, 4, 38, 51)
从今天的中减去

>>> import datetime
>>> today = datetime.datetime.today()
>>> yourdate = datetime.datetime.strptime(u'2014-03-06T04:38:51Z', '%Y-%m-%dT%H:%M:%SZ')
>>> difference = today - yourdate
print str(difference)

首先,必须将字符串转换为
datetime.datetime
对象

import datetime
then = datetime.datetime.strptime(u'2014-03-06T04:38:51Z', "%Y-%m-%dT%H:%M:%SZ")
然后
将其自身表示为
datetime.datetime(2014,3,6,4,38,51)
,看起来大致正确。然后您必须以
datetime.datetime
的形式获取今天的日期

now = datetime.datetime.now()
最后从日期中减去它(反之亦然,问题没有说清楚)。
delta
是一个
datetime.timedelta
对象,它以天、秒和微秒为单位存储增量。后两个总是积极的,第一个可以是消极的

for delta in (now-then, then-now):
    print(delta, "::", delta.days, delta.seconds, delta.microseconds)
这将打印出:

-1 day, 20:18:14.250142 :: -1 73094 250142
3:41:45.749858 :: 0 13305 749858

最好用几个例子来证明它是正确的。

那么what-have-u-try.com?当前日期时间的可能重复项是
datetime.datetime.now()
。最后我解决了我的问题,然后我看到了这一点。不管怎样,感谢史蒂文总是先做研究!很高兴你解决了你的问题