从英语到法语的日期转换问题

问题描述 投票:-1回答:3

我尝试用法语(07/10/2016)转换英语(2019-10-07)的日期

我尝试

dat = '07/10/2019'
dat = time.strftime('%Y-%m-%d') 

但得到的结果是'2019-10-16'而不是'2019-10-07'

python time strftime
3个回答
0
投票

使用datetime,您可以确定提供原始日期的格式以及所需的目标格式。

from datetime import datetime

dat = '07/10/2019'
datetime.strptime(dat, "%d/%m/%Y").strftime("%Y-%m-%d")

out[6]: '2019-10-07'


0
投票

strftime需要一个时间/日期进行转换,如果您不提供,则将使用当前日期和时间。 dat的先前值不相关-strftime无法看到此信息。

您需要提供strftime将格式化的时间信息,作为通过parsing原始字符串可以获得的元组。为此,请使用strptime(f表示格式,p表示解析)。

所以:

dmy = '07/10/2019'
ymd = time.strftime('%Y-%m-%d', time.strptime(dmy, '%d/%m/%Y'))
#                    ^^^^^^^^                       ^^^^^^^^
#                    output schema                  input schema
# now ymd is '2019-10-07'

(或者您可以使用datetime模块作为其他答案。通过这种方式,解析为您提供了一个对象,该对象具有method可以格式化回来-因此您可以按顺序编写整个操作“ ”。但是一般原则是相同的:您需要先解析,然后格式化,还需要在每一侧指定架构。)


0
投票

with:

dat = time.strftime('%Y-%m-%d')

您恢复了实际日期。

您需要制作:

from datetime import datetime

dat = '07/10/2019'
dat = datetime.strptime(dat, '%m/%d/%Y')

print(dat.strftime('%Y-%m-%d') )
© www.soinside.com 2019 - 2024. All rights reserved.