Python错误:TypeError:期望的字符串或缓冲区

时间:2018-02-22 23:59:33

标签: python python-3.x python-2.7 datetime

我的代码需要你的帮助。我已从time.struct_time转换为datetime个对象。现在我想在添加到第二天的日期之后将其转换回time.struct_time对象。

当我尝试这个时:

half_hour_date = '23/02/2018 23:00PM'
epg_time_1 = time.strptime(half_hour_date, '%d/%m/%Y %I:%M%p')

#convert from time_struct_time object to datetime
date_format = datetime.datetime.fromtimestamp(time.mktime(epg_time_1))
half_hour = date_format + datetime.timedelta(days = self.program_day)

#convert from datetime to time_struct_time object
epg_time_1 = time.strptime(half_hour, '%d/%m/%Y %I:%M%p')

它给我一个错误: TypeError:期望的字符串或缓冲区

错误是跳到这一行:

epg_time_1 = time.strptime(half_hour, '%d/%m/%Y %I:%M%p')

以下是half_hour的日期时间对象:

2018-02-23 23:00:00

这是我想要实现的目标:

time.struct_time(tm_year=2018, tm_mon=2, tm_mday=23, tm_hour=23, tm_min=00, tm_sec=0, tm_wday=3, tm_yday=53, tm_isdst=-1)

您能否帮我解决错误,以便将其转换为time.struct_time对象?

2 个答案:

答案 0 :(得分:1)

["a","b"]

答案 1 :(得分:-1)

下午23:00没有。将其更改为晚上11:00。

[更新]

正如您所提到的,错误来自第二行。当我用Python 3.6运行前两行时,结果是

  

ValueError:时间数据'23 / 02/2018 23:00 PM'格式'%d /%m /%Y%I:%M%p'

这意味着“23:00 PM”出现问题所以我建议将其更改为“晚上11点”。或者您可以使用“%H”而不是“%I”(正如Patrick Haugh在评论中所建议的那样)。

P.S。由于移动设备,我无法给出完整的答案。对不起。