以字符串格式转换西班牙语日期

use*_*969 1 python string localization date

如何将字符串格式的日期转换为与当前时间进行比较?

我试过这个:

import time, datetime

if time.strptime(date.find(text=True), "%a, %d/%m/%Y").now() > datetime.now():
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

ValueError: time data u'Dom, 07/02/2016' does not match format '%a, %d/%m/%Y'
Run Code Online (Sandbox Code Playgroud)

需要有关如何执行此操作的建议.

dhk*_*hke 9

在处理语言/区域特定数据之前,您需要设置正确的语言环境.

再试一次

import locale
locale.setlocale(locale.LC_TIME, '')
time.strptime(date_string, "%a, %d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)

''通知库即可领取您系统的当前区域设置(如果已设置).

如果需要在不同的语言环境中解析日期,情况会稍微复杂一些.请参阅如何在不同的区域设置中对日期对象进行strftime?对于坚韧不拔的细节.

可以明确设置特定的语言环境,例如

locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')
time.strptime('Dom, 01/02/1903', '%a, %d/%m/%Y')
=> time.struct_time(tm_year=1903, tm_mon=2, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=32, tm_isdst=-1)
Run Code Online (Sandbox Code Playgroud)

但请记住,此设置是全局的.strptime()不接受参数来指定要解析的特定区域设置,它总是选择全局区域设置.

如果日期是用户提供的,我使用dateparser包作为欢迎替代品.特别是如此,因为它的parse()函数接受一个显式languages参数.