J'ai essayé le code suivant:
import datetime
d = datetime.datetime.strptime("01/27/2012", "%m/%d/%Y")
print(d)
et le résultat est:
2012-01-27 00:00:00
J'utilise Linux Mint:
test@testsrv ~/pythonvault $ date
Fri Jun 16 21:40:57 EEST 2017
La question est donc de savoir pourquoi la sortie du code python renvoie une date au format "%Y/%m/%d" ( 2012-01-27 )
au lieu du format "%m/%d/%Y"
?
S'il vous plaît noter que je suis en utilisant Python 2.7
Toute aide serait appréciée.
Vous devez vous assurer de fournir vos commentaires en conséquence
datetime.strptime(date_string,date_string_format).strftime(convert_to_date_string_format)
Pour imprimer la date au format spécifié, vous devez fournir le format ci-dessous.
import datetime
d =datetime.datetime.strptime("01/27/2012","%m/%d/%Y").strftime('%m/%d/%Y')
print d
Sortie:
01/27/2012
La fonction datetime.strptime(date_string, format)
renvoie un objet datetime
correspondant à date_string
, analysé conformément à format
. Lorsque vous imprimez un objet datetime
, il est mis en forme en tant que chaîne au format ISO 8601, YYYY-MM-DDTHH:MM:SS
Références:
Comme indiqué astucieusement dans les commentaires, vous analysez un objet datetime en utilisant le format que vous avez spécifié.
strptime(...)
is Str ing P ass Time. Vous avez spécifié le format dans lequel la chaîne doit être interprétée pour initialiser un objet Datetime, mais ce format est utilisé uniquement pour l'initialisation. Par défaut, lorsque vous allez imprimer cet objet datetime, vous obtenez la représentation de str(DatetimeObjectInstance)
(dans votre cas, str(d)
).
Si vous voulez un format différent, vous devriez utiliser Str ing F oumat Time ( strftime(...)
)
import datetime
str_time= "2018-06-03 08:00:00"
date_date = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
print date_date