在python中,只使用locale作为参数来解析日期字符串



我正在尝试解析日期字符串。

我所拥有的只是一个字符串和一个区域设置代码;en_en";或";de_de";。字符串和区域设置是任意的,因此硬编码格式不是解决方案。

通常情况下这是没有问题的。我会使用locale.nl_langinfo((来获取格式。但是,它不存在于windows上。

由于我不想每次支持区域设置时都更新字符串格式词典,是否有一个库可以为我提供区域设置的日期格式字符串,或者只是根据区域设置代码进行解析?

我找到的每个库都需要日期格式字符串。请帮忙:(

编辑:在这一点上,我只需要一本地区和相应日期格式的字典

Windows区域设置可以使用ctypes读取,如本文所述
此外,您需要显式设置区域设置以获得区域设置的默认日期格式:

import locale
import datetime as dt
today = dt.date.today()
for loc in ('de_DE', 'ja_JP', 'en_US'):
locale.setlocale(locale.LC_TIME,f'{loc}.UTF-8')
date_format = locale.nl_langinfo(locale.D_FMT)
print(f"{loc} >> {today.strftime(date_format)}")

输出:

de_DE >> 09.04.2021
ja_JP >> 2021/04/09
en_US >> 04/09/2021

最新更新