将长日期转换为字符串

时间:2014-07-17 10:16:23

标签: python python-2.7 xbmc

我正在使用我的python脚本从sqlite3数据库中提取数据。

我正在尝试转换数据,以便字符串不再是unicode,日期但日期仍显示L字符串,您可以在此处看到它:

11:02:51 T:3016  NOTICE: ('101 ABC FAMILY ', 'The Goonies', 
20140520173000L, 20140520200000L)
11:02:51 T:3016  NOTICE: ('101 ABC FAMILY ', 'Pirates of the Caribbean: On 
Stranger Tides', 20140520200000L, 20140520230000L)

使用此代码:

#Pull the data from the database
channelList = list()
channel_db = 
xbmc.translatePath(os.path.join('special://userdata/addon_data/script.tvguide', 
'source.db'))

if os.path.exists(channel_db):
   con.text_factory = lambda x: x.encode('ascii')
   cur.execute('SELECT channel, title, start_date, stop_date 
FROM programs WHERE channel')
   for row in cur:
       channel = row[0], row[1], row[2], row[3]
       channelList.append(channel)
       print channel
   cur.close()

当我尝试这个时:

for row in cur:
    row[0].encode('ascii'), row[1].encode('ascii'), int(row[2]), int(row[3])
    channelList.append(channel)
    print channel

在第一段代码中,它会删除u个字符串,但在这两个代码上都不会删除L字符串。

您能否告诉我如何删除L字符串以及我应该使用哪种类型的函数?

1 个答案:

答案 0 :(得分:1)

'L'表示long内置数字类型。你可能真的不需要摆脱它,但如果你这样做,你可以使用构造函数来转换类型:

>>> int(1L)
1
>>> long(1)
1L

您还可以使用strptime将时间戳转换为datetime.datetime对象:

>>> datetime.datetime.strptime(str(20140520173000L), "%Y%m%d%H%M%S")
datetime.datetime(2014, 5, 20, 17, 30)