我尝试用法语(07/10/2016)转换英语(2019-10-07)的日期
我尝试
dat = '07/10/2019'
dat = time.strftime('%Y-%m-%d')
但得到的结果是'2019-10-16'而不是'2019-10-07'
使用datetime
,您可以确定提供原始日期的格式以及所需的目标格式。
from datetime import datetime
dat = '07/10/2019'
datetime.strptime(dat, "%d/%m/%Y").strftime("%Y-%m-%d")
out[6]: '2019-10-07'
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可以格式化回来-因此您可以按顺序编写整个操作“ ”。但是一般原则是相同的:您需要先解析,然后格式化,还需要在每一侧指定架构。)
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') )