如何将字符串2021-09-30_1转换为日期时间



如何将字符串2021-09-30_1转换为日期时间2021/09/30 00:00,这意味着我们必须从最后一个字符串中减去一个才能得到小时。

I trieddatetime.strptime(date, '%Y %d %Y %I')

datetime.strptime如果要从字符串定义时间戳,则格式应与提供的格式匹配。datetime.strftime(注意f))是从datetime对象生成一个字符串。你可以使用:

datetime.strptime(date, '%Y-%m-%d_%H').strftime('%Y/%m/%d %H:%M')

输出:'2021/09/30 01:00'

如果_x定义了增量:

from datetime import datetime, timedelta
d, h = date.split('_')
d = datetime.strptime(d, '%Y-%m-%d')
h = timedelta(hours=int(h))
(d-h).strftime('%Y/%m/%d %H:%M')

输出:'2021/09/29 23:00'

考虑到_1是小时并且出现在您的所有数据中(小时部分的值在[1,24]之间),您的格式是错误的。

要从字符串中读取日期,您需要正确格式化它:

from datetime import datetime, timedelta
date = "2021-09-30_1"
date_part, hour_part = date.split("_")
date_object = datetime.strptime(date_part, '%Y-%m-%d') + timedelta(hours=int(hour_part) - 1)

现在您有了date对象。可以显示为:

print(date_object.strftime('%Y/%m/%d %H:%M'))
from datetime import datetime
raw_date = "2021-09-30_1"
date = raw_date.split("_")[0]
parsed_date = datetime.strptime(date, '%Y-%m-%d')
formated_date = parsed_date.strftime('%Y/%m/%d %H:%M')

strptime用于解析字符串,strftime用于格式化。

对于日期表示,您应该提供小时和分钟的格式代码,如:

formated_date = parsed_date.strftime('%Y/%m/%d %H:%M')