簡體   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