Réponses:
datetime
module pourrait vous aider avec cela:
datetime.datetime.strptime(date_string, format1).strftime(format2)
Pour l'exemple spécifique que vous pourriez faire
>>> datetime.datetime.strptime('Mon Feb 15 2010', '%a %b %d %Y').strftime('%d/%m/%Y')
'15/02/2010'
>>>
date_string
une chaîne.
format1
doit être une chaîne pour exprimer le format de la chaîne de date d'entrée. format2
est le format de chaîne cible à afficher.
Vous pouvez installer la bibliothèque dateutil . Sa parse
fonction peut déterminer le format d'une chaîne sans avoir à spécifier le format comme vous le faites avec datetime.strptime
.
from dateutil.parser import parse
dt = parse('Mon Feb 15 2010')
print(dt)
# datetime.datetime(2010, 2, 15, 0, 0)
print(dt.strftime('%d/%m/%Y'))
# 15/02/2010
python 3.x
besoins d'installationpython-dateutil
pip install python-dateutil
>>> from_date="Mon Feb 15 2010"
>>> import time
>>> conv=time.strptime(from_date,"%a %b %d %Y")
>>> time.strftime("%d/%m/%Y",conv)
'15/02/2010'
convertir une chaîne en objet datetime
from datetime import datetime
s = "2016-03-26T09:25:55.000Z"
f = "%Y-%m-%dT%H:%M:%S.%fZ"
out = datetime.strptime(s, f)
print(out)
output:
2016-03-26 09:25:55
Comme cette question revient souvent, voici l'explication simple.
datetime
ou time
module a deux fonctions importantes.
Dans les deux cas, nous avons besoin d'une chaîne de formatage. C'est la représentation qui indique comment la date ou l'heure est formatée dans votre chaîne.
Supposons maintenant que nous ayons un objet date.
>>> from datetime import datetime
>>> d = datetime(2010, 2, 15)
>>> d
datetime.datetime(2010, 2, 15, 0, 0)
Si nous voulons créer une chaîne à partir de cette date au format 'Mon Feb 15 2010'
>>> s = d.strftime('%a %b %d %y')
>>> print s
Mon Feb 15 10
Supposons que nous souhaitons le convertir à s
nouveau en datetime
objet.
>>> new_date = datetime.strptime(s, '%a %b %d %y')
>>> print new_date
2010-02-15 00:00:00
Reportez-vous à ce document toutes les directives de formatage concernant datetime.
Juste pour être terminé: lors de l'analyse d'une date en utilisant strptime()
et la date contient le nom d'un jour, d'un mois, etc., sachez que vous devez tenir compte des paramètres régionaux.
Il est également mentionné en note de bas de page dans la documentation .
Par exemple:
import locale
print(locale.getlocale())
>> ('nl_BE', 'ISO8859-1')
from datetime import datetime
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y'
locale.setlocale(locale.LC_ALL, 'en_US')
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> '2016-03-06'
@codeling et @ user1767754: les deux lignes suivantes fonctionneront. Je n'ai vu personne afficher la solution complète pour l'exemple de problème qui a été demandé. J'espère que c'est une explication suffisante.
import datetime
x = datetime.datetime.strptime("Mon Feb 15 2010", "%a %b %d %Y").strftime("%d/%m/%Y")
print(x)
Production:
15/02/2010
Vous pouvez également y parvenir en utilisant des pandas:
import pandas as pd
pd.to_datetime('Mon Feb 15 2010', format='%a %b %d %Y').strftime('%d/%m/%Y')
Production:
'15/02/2010'
Vous pouvez appliquer l'approche pandas pour différents types de données comme:
import pandas as pd
import numpy as np
def reformat_date(date_string, old_format, new_format):
return pd.to_datetime(date_string, format=old_format, errors='ignore').strftime(new_format)
date_string = 'Mon Feb 15 2010'
date_list = ['Mon Feb 15 2010', 'Wed Feb 17 2010']
date_array = np.array(date_list)
date_series = pd.Series(date_list)
old_format = '%a %b %d %Y'
new_format = '%d/%m/%Y'
print(reformat_date(date_string, old_format, new_format))
print(reformat_date(date_list, old_format, new_format).values)
print(reformat_date(date_array, old_format, new_format).values)
print(date_series.apply(lambda x: reformat_date(x, old_format, new_format)).values)
Production:
15/02/2010
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
utiliser la bibliothèque datetime http://docs.python.org/library/datetime.html rechercher 9.1.7. en particulier strptime () strftime () Exemples de comportement¶ http://pleac.sourceforge.net/pleac_python/datesandtimes.html