将Unicode对象转换为列表列表中的日期时间对象

时间:2014-09-03 21:32:34

标签: python list datetime unicode

我正在尝试列出一个列表,我想拆分列表中每个元素的第一个元素中的datetime对象,如下所示。

  

list = [[u'2014-09-02T23:00:00',1,1,u'msdn.microsoft.com',u'Engineering&技术',1],[u'2014-09-02T23:00:00',1,1,u'qr.ae',u'Uncategorized',0],[u'2014-09-02T23:00: 00',1,1,u'accounts.google.com',u'General Communication&调度',0]]

我看到了之前关于Unicode到日期的堆栈问题(link),并尝试了以下代码:

  

date_unicode = str(list [0] .split('T'))

     

date = datetime.strptime(date_unicode,'%Y-%m-%dT%H:%S')

仅接收错误,指出模块对象没有属性'strptime'。如果有人能够帮助我不仅将unicode日期拆分为列表中每个元素的实际日期对象,我将非常感激。

2 个答案:

答案 0 :(得分:1)

  1. 您的列表是两个diminsional,因此您需要一个额外的索引:list[0][0]
  2. 您的strptime()格式接受整个ISO8601日期,因此您不需要.split()
  3. strptime()datetime.datetime
  4. 的方法
    date_unicode = str(list[0][0])
    date = datetime.datetime.strptime(date_unicode, '%Y-%m-%dT%H:%M:%S')
    print date
    

    最后,你有几个列表元素,所以你需要一个循环:

    newlist = [datetime.datetime.strptime(item[0], '%Y-%m-%dT%H:%M:%S')
               for item in list]
    print newlist
    

答案 1 :(得分:0)

from datetime import datetime
print [datetime.strptime(x[0],"%Y-%m-%dT%H:%M:%S") for x in l]
[datetime.datetime(2014, 9, 2, 23, 0), datetime.datetime(2014, 9, 2, 23, 0), datetime.datetime(2014, 9, 2, 23, 0)]

您需要使用from datetime import datetimedatetime.datetime.strptime