繁体   English   中英

切片和替换Unicode字符串字符

[英]Slicing and Replacing Unicode String Characters

我尝试使用以下循环替换unicode字符串中的字符。 我为此循环获取的数据采用以下格式:YYYY-MM-DD HH:MM:SS

这些数据显然存储在UTC中,因此当我抓取数据并将这些时间和日期附加到我的列表appts_list的4小时时。

我已经对unicode字符串进行了切片,并对这些字符进行了数学运算,得出了我所需要的正确时间,但是将其重新输入字符串时遇到了问题,因此我可以将其写到我的列表中appts_list

尝试将正确的小时time_slice_int的整数写回到原始字符串时,出现TypeError错误。 我决定尝试将整个字符串放入列表中,然后在此处进行更改,但这都不起作用。

理想情况下,我希望将“ 2013-06-28 15:30:00”的约会作为“ 2013-06-28 11:30:00”输入到我的appts_list中。

我可以在运行时调试打印语句。 最终版本不需要它们。

有人有任何建议或解决方案吗?

for appt in todays_appts:
        time = appt['apptdateourtime_c']
        time_slice = time[11:13]
        time_slice_int = int(time_slice)
        time_slice_int -= 4
        print(time_slice_int)
        appt_time = list(time)
        print(appt_time)
        print(appt_time[11:13])
        #appt_time[11:13] = time_slice_int
        #appts_list.append()
        print('AppointmentScheduled')
        #print(appt['apptdateourtime_c'])
        #print(time)
        print('')

您应该在此处使用datetime模块:

>>> from datetime import datetime, timedelta
>>> strs = '2013-06-28 15:30:00'
>>> d = datetime.strptime(strs, "%Y-%m-%d %H:%M:%S")

datetime.strptime返回一个datetime对象:

>>> d
datetime.datetime(2013, 6, 28, 15, 30)
>>> d.hour
15
>>> d.month
6

现在,使用timedelta从上述日期时间对象( d )减少4小时,然后将新对象分配给变量:

>>> d1 = d - timedelta(hours = 4)

现在使用datetime.strftime获取所需格式的字符串:

>>> datetime.strftime(d1,"%Y-%m-%d %H:%M:%S")
'2013-06-28 11:30:00'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM