Skip to main content
 首页 » 编程设计

python之以字符串格式转换西类牙日期

2025年05月04日20lovecherry

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

我试过这个:

import time, datetime 
 
if time.strptime(date.find(text=True), "%a, %d/%m/%Y").now() > datetime.now(): 

但是我得到这个错误:

ValueError: time data u'Dom, 07/02/2016' does not match format '%a, %d/%m/%Y' 

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

请您参考如下方法:

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

再试一次

import locale 
locale.setlocale(locale.LC_TIME, '') 
time.strptime(date_string, "%a, %d/%m/%Y") 

'' 告诉库选择您系统的当前语言环境(如果已设置的话)。

如果您需要在不同的语言环境中解析日期,情况会稍微复杂一些。参见 How do I strftime a date object in a different locale?对于坚韧不拔的细节。

可以显式设置特定的区域设置,例如

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) 

但请记住,此设置是全局的。 strptime() 不接受指定要解析的特定语言环境的参数,它总是选择全局语言环境。

如果日期是用户提供的,我使用了dateparser包装作为一个受欢迎的选择。尤其如此,因为它的 parse() 函数接受显式的 languages。参数。