web-dev-qa-db-fra.com

Comment convertir `ctime` en` datetime` en Python?

import time
t = time.ctime()

Pour moi, t est 'Sat Apr 21 11:58:02 2012'. J'ai plus de données comme ça.

Ma question est:  

  • Comment convertir t en datetime en Python? Y at-il des modules à cela?

J’ai essayé de faire un temps dict puis de convertir t, mais j’ai l’impression que ce n’est pas la meilleure façon de le faire en Python. 

Détails:  

  • J'ai une liste ctime (comme ['Sat Apr 21 11:56:48 2012', 'Sat Apr 21 11:56:48 2012']). 
  • Je veux convertir le contenu en datetime, puis le stocker dans une db avec timestamp.
24
flreey

Vous devriez utiliser strptime : cette fonction analyse une chaîne représentant une heure selon un format. La valeur de retour est un struct_time .

Le paramètre format par défaut est %a %b %d %H:%M:%S %Y qui correspond au formatage renvoyé par ctime ().

Donc dans votre cas, essayez simplement la ligne suivante, puisque le format par défaut est celui de ctime:

import datetime
import time

datetime.datetime.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y")

Retours: datetime.datetime(2012, 4, 21, 4, 22, 00)

28
Charles Menguy
3
zognortz

Le court. Non.

Les informations sur les paramètres régionaux ne sont pas utilisées par ctime ().

Remarque: lorsque vous utilisez time.ctime() & datetime.fromtimestamp(), vous pouvez également rencontrer un problème historique lors de la conversion de fuseaux horaires locaux. comme indiqué dans les commentaires de ces réponses ici et ici

Le long.

Alternativement, si vous avez besoin d'une "Date & Heure" que vous pouvez formater, il y a plusieurs façons d'utiliser datetime , time.strftime , également en utilisant même python pandas , et ici posix_time , et enfin comme mentionné sur les autres réponses ici _ { datetime.strptime .

Différences de date connues

Si vous n'êtes pas inquiet à propos de fuseaux horaires ou du calendrier julien , heures ambiguës ou conversion en heure locale en utilisant UNIXTIMESTAMP , cherchant à utiliser Epoch Time, assurez-vous de spécifier dates époques notables en informatique et ceci pour unix

Quelle je remercie Matt sur ce fil pour le 

"S'il vous plaît, arrêtez de l'appeler" époque "quand vous voulez dire" heure Unix ".......

Mon usage

Maintenant aussi fou que tout ce qui était, ce n'est pas si mal. J’ai travaillé avec de nombreuses entreprises auparavant, et cela n’arrive généralement pas sur le lieu de travail, comme c’est habituellement le cas.

Donc, en dehors de tout ça ... C'est mon préféré:

J'utilise ceci pour mes propres affaires: time.strftime

from time import strftime

print(strftime('%Y%m%d_%H%M%S'))

Ce que je retourne: Année, Mois, Jour, _, Heure, Minute, Seconde

20180827_021106

Ce que j'utilise dans une fonction:

def _now():
    """The Module Reports A Formatted Time."""
    ymd = (strftime('%Y%m%d_%H%M%S'))
    return ymd

Juste quelque chose de simple qui garde mes journaux en ordre.

0
JayRizzo