Pythonで
英語の年月日、例として『February 10, 2024』のような形を、
日本の年月日、『2024年02月10日』として変換する方法です。
英語のページをスクレイピングしリストアップした時に、日本語に変換する必要がありました。
以下備忘録として残します。
英語式の年月日を日本式に変換する
最初にその方法を書いておきます。
from datetime import datetime
# 英語の日付文字列
english_date_str = "February 10, 2024"
# 英語の日付文字列を datetime オブジェクトに変換
english_date = datetime.strptime(english_date_str, "%B %d, %Y")
# 日本の日付文字列に変換
japanese_date_str = english_date.strftime("%Y年%m月%d日")
print(japanese_date_str) # 出力結果: 2024年02月10日
コードの説明
日本式の年月日から英語式の年月日に変換する
次は逆の変換方法です。
英語→日本のコードの説明を読んでいただければご自分で作成可能だと思いますが、面倒な人のために残しておきます。
コピペして使ってください。
from datetime import datetime
# 日本の日付文字列
japanese_date_str = "2024年02月10日"
# 日本の日付文字列を datetime オブジェクトに変換
japanese_date = datetime.strptime(japanese_date_str, "%Y年%m月%d日")
# 英語の日付文字列に変換
english_date_str = japanese_date.strftime("%B %d, %Y")
print(english_date_str) # 出力結果: February 10, 2024
【おまけ】ebayの商品一覧ページの販売した日付をdatetime オブジェクトに変換
ebayで終了済み商品を検索した際、販売した日付が英語になっています。
それを色々いじりたい時に不便だったので、datetime オブジェクトに変換する必要がありました。
これも作る機会があったのでついでに乗っけておきます。
ブサイクですが一応使えます。
import datetime
import re
def convert_ebay_sold_date(date_str):
# 日付文字列を適切な形式に分割
parts = re.split(' | |, | ,', date_str) # 空白1個・空白2個・空白+コンマで文字列を分割
parts.pop(0) # "販売済み"を削除
# 日付の文字列を結合して正しい形式に変換
formatted_date_str = parts[1] + parts[0] + parts[2]
# 正しい形式の日付文字列を datetime オブジェクトに変換して返す
return datetime.datetime.strptime(formatted_date_str, "%d%b%Y")