web-dev-qa-db-fra.com

Date et heure strptime en python

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.

7
VorX

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

>> Démo <<

14
Ravi

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:

3
taras

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(...) )

1
SpencerD
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
0
Mahmudul Hasan