首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串2021-09-30_1转换为日期时间

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

Stack Overflow用户
提问于 2021-10-26 08:32:28
回答 3查看 104关注 0票数 0

如何将字符串2021-09-30_1转换为日期时间2021/09/30 00:00,这意味着从最后一个字符串减去1可以得到小时。

我试过datetime.strptime(date, '%Y %d %Y %I')

EN

回答 3

Stack Overflow用户

发布于 2021-10-26 08:37:49

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

代码语言:javascript
运行
复制
datetime.strptime(date, '%Y-%m-%d_%H').strftime('%Y/%m/%d %H:%M')

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

_x定义增量的情况下:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2021-10-26 08:39:01

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

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

代码语言:javascript
运行
复制
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对象。您可以将其显示为:

代码语言:javascript
运行
复制
print(date_object.strftime('%Y/%m/%d %H:%M'))
票数 1
EN

Stack Overflow用户

发布于 2021-10-26 08:55:24

代码语言:javascript
运行
复制
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用于格式化。

另外,对于日期表示,您应该提供小时和分钟的format codes,如下所示:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69719872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档