gpt4 book ai didi

python - 覆盖列表中的元素

转载 作者:行者123 更新时间:2023-12-01 23:29:33 24 4
gpt4 key购买 nike

我正在创建一个返回时间的函数。我希望它显示上午/下午而不是最多 24 小时。所以如果超过12,我需要先在小时上减去6。

但什么也没有发生,我什至没有收到错误,我也不知道这是什么原因。谁能解释一下是什么原因?

import datetime

MONTHS = 'jan feb mar apr may jun jul aug sep oct nov dec'.upper().split(' ')
def get_date():
# 01-OCT-1978 04:31:17

date = datetime.datetime.today().__str__().split(' ')
date[0] = date[0].split('-')

if int(date[1].split(':')[0]) > 12:
date[1].split(':')[0] = str(int(date[1].split(':')[0]) - 12)

real_date = date[0][2] + '-' + MONTHS[int(date[0][1])] + '-' + date[0][0] + ' ' + date[1].split('.')[0]

return real_date

print(get_date())
# 07-APR-2021 21:56:12

最佳答案

对于您的问题,我会建议一个全新的解决方案,更好地利用强大的 datetime 模块。

import datetime

date = datetime.datetime.today().strftime("%Y-%m-%d %I:%M %p")

print(date)
# '2021-03-08 10:54 AM'

您的代码不起作用的原因是您正在编辑未存储的临时变量。您必须创建一个变量来存储拆分列表,然后将它们连接回去。

如果把中间部分改成

t = date[1].split(':')
if int(t[0]) > 12:
t[0] = str(int(t[0]) - 12)
date[1] = ':'.join(t)

这会起作用。但我必须提醒你,这种方式会增加附加'AM''PM'的复杂性,而使用该模块会更方便。

关于python - 覆盖列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66523746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com