Cet article présente principalement la méthode de traitement de datetime dans Django (strftime/strptime). Cet article vous présente de manière très détaillée et a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer
strftime<. ;Convertir le traitement de type date, datetime, timezone.now() en type chaîne>
La fonction strftime() est une fonction utilisée pour formater une date, une dateheure et une heure. et d'autres classes, et formate ces heures sous forme de chaînes via des caractères de format.
import datatime datatime.datatime.now()
ou
from datatime import datatime datatime.now()
Mon format de conversion de sortie
strftime('%Y-%m-%d %H:%I:%S')
L'effet est similaire au 23/07/2018 : 18 :20 comme ça.
strptime
La fonction strptime() consiste à formater la date et l'heure représentées par la chaîne. Les chaînes requises sont converties en dates-heures correspondantes.
d2 = datetime.strptime('2018-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
Format de contrôle de conversion :
Convertir en chaîne
%y Représentation de l'année à deux chiffres (00-99)
% Y quatre- représentation de l'année par chiffres (000-9999)
%m mois (01-12)
%d jour du mois (0-31)
%H 24 heures (0 -23)
%I Heures sur 12 heures (01-12) Horloge sur 12 heures
%M minutes (00=59)
%S secondes (00-59)
Deux bugs rencontrés :
Un : L'heure d'affichage est incohérente avec la base de données :
J'ai rencontré une fois un tel problème, le le temps retiré de la base de données n'était pas cohérent avec le temps affiché sur le front-end. Plus tard, après avoir affiché plus de temps et converti les informations, j'ai finalement découvert que le collègue qui avait écrit le code auparavant l'utilisait
one['time'] = one['time'].strftime('%Y-%m-%d %H:%I:%S')
. %I est la forme de conversion de l'horloge de douze heures. Lors de la conversion du format de cette manière, même si aucune erreur n'est signalée, le résultat de sortie sera incohérent avec la base de données. La base de données est enregistrée en unités de 24 heures.
Deux : datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=
apparaît Un tel message d'erreur...
datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=<UTC>) is not JSON serializable
Il s'agit d'un message d'erreur qui apparaît lorsque les données datetime sont placées directement dans json. Elles ne peuvent pas être placées directement dans json
La solution est : Oui, utilisez. strftime pour la sérialisation, comme la méthode suivante
.strftime("%Y-%m-%d %H:%M:%S")
Regardons l'explication détaillée de Python : time, strftime et strptime
Le time.time() le plus couramment utilisé renvoie un nombre à virgule flottante en secondes. Mais le type traité par strftime est time.struct_time, qui est en fait un tuple. strptime et localtime renverront ce type.
>>> import time >>> t = time.time() >>> t 1202872416.4920001 >>> type(t) <type 'float'> >>> t = time.localtime() >>> t (2008, 2, 13, 10, 56, 44, 2, 44, 0) >>> type(t) <type 'time.struct_time'> >>> time.strftime('%Y-%m-%d', t) '2008-02-13' >>> time.strptime('2008-02-14', '%Y-%m-%d') (2008, 2, 14, 0, 0, 0, 3, 45, -1)
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Le framework php CodeIgniter utilise redis Explication de la méthode
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!