如何自动将日期格式更改为另一种日期格式

How to change date format to another date format automatically

目前我正在从 csv 文件中捕获日期,但日期字段可以采用任何格式。

我只想将此日期转换为 %Y-%m-%d 日期格式。但是 strptime 不起作用。

例如:

Csv Dates ----> Transformation

2020/06/23 06:00    
--->   2020-06-23
23/04/2020 05:00    
--->   2020-04-23
11/4/2020  10:00    
--->   2020-04-11
2022/1/24  11:00    
--->   2022-01-24

代码:

fecha_csv = row[7]      
fecha_csv = datetime.strptime(fecha_csv, '%Y-%m-%d %H:%M:%S')
fecha_csv = fecha_csv.date()

这是假设您在示例中给出的日期格式。要格式化进一步的日期,这可能需要根据给定的日期进行修改。

您遇到的问题可能是您没有将其转换为正确的日期时间对象,以便您可以将其更改为您想要的日期格式。

您可以使用几种方法将日期格式随时间更改为只有日期。一种是如果日期的格式始终与所示示例相同,则只进行字符串操作,或者您可以将其转换为日期时间对象,如下所示。

fecha_csv = row[7]
if len(fecha_csv.split('/')[0]) > 2: # year is first
    datetime.strptime(fecha_csv, '%Y/%m/%d %H:%M').strftime("%Y-%m-%d")
else: # year is last
    datetime.strptime(fecha_csv, '%d/%m/%Y %H:%M').strftime("%Y-%m-%d")

您当前代码的一个问题是它被格式化为读取日期为 2020-06-23 06:00:00 而它应该只被格式化为读取为 2020/06/23 06:00

同样,您可以使用日期解析器 -

from dateutil.parser import parse

fecha_csv = row[7]
csv_date = parse(fetch_csv).date()