繁体   English   中英

从 python 中的字符串中提取日期、月份和年份

[英]extract date, month and year from string in python

我有这个列,其中字符串包含日期、月份、年份和时间信息。 我只需要获取日期、月份和年份。

字符串中没有空格。

该字符串采用以下格式:

date
Tuesday,August22022-03:30PMWIB
Monday,July252022-09:33PMWIB
Friday,January82022-09:33PMWIB

我希望得到:

date
2022-08-02
2022-07-25
2022-01-08

如何仅获取日期、月份和年份并将格式更改为 python 中yyyy-mm-dd

提前致谢

您可以使用标准的datetime

from datetime import datetime

dates = [
    "Tuesday,August22022-03:30PMWIB",
    "Monday,July252022-09:33PMWIB",
    "Friday,January82022-09:33PMWIB"
]

for text in dates:
    text = text.split(",")[1].split("-")[0]
    dt = datetime.strptime(text, '%B%d%Y')
    print(dt.strftime("%Y-%m-%d"))

另一种/更短的方法是这样的(如果你想要其他日期部分):

for text in dates:
    dt = datetime.strptime(text[:-3], '%A,%B%d%Y-%I:%M%p')
    print(dt.strftime("%Y-%m-%d"))

时区部分很棘手,仅适用于 UTC、GMT 和本地。 您可以在此处阅读有关格式代码的更多信息。

strptime() 只接受 %Z 的某些值:

time.tzname 中机器语言环境的任何值

硬编码值 UTC 和 GMT

使用日期时间库中的 strptime

var = "Tuesday,August22022-03:30PMWIB"
date = var.split('-')[0]
formatted_date = datetime.strptime(date, "%A,%B%d%Y")
print(formatted_date.date()) #this will get your output

Output:

2022-08-02

您可以转换为日期时间 object 然后取回字符串。

from datetime import datetime
datetime_object = datetime.strptime('Tuesday,August22022-03:30PM', '%A,%B%d%Y-%I:%M%p')
s = datetime_object.strftime("%Y-%m-%d")
print(s)

您可以使用datetime库来解析日期并以您的格式打印。 在您的示例中,这day可能不是零填充的,所以我添加了它,然后解析了日期。

import datetime

date = 'Tuesday,August22022-03:30PMWIB'
date = date.split('-')[0]

if not date[-6].isnumeric():
    date = date[:-5] + "0" + date[-5:]
    newdate = datetime.datetime.strptime(date, '%A,%B%d%Y').strftime('%Y-%m-%d')
    print(newdate)
    # prints 2022-08-02

暂无
暂无

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

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