Comment gérer la date et l'heure dans Django (strftime/strptime)

不言
Libérer: 2023-04-02 08:46:01
original
2555 Les gens l'ont consulté

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()
Copier après la connexion

ou

from datatime import datatime
datatime.now()
Copier après la connexion

Mon format de conversion de sortie

strftime(&#39;%Y-%m-%d %H:%I:%S&#39;)

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(&#39;2018-03-02 17:41:20&#39;, &#39;%Y-%m-%d %H:%M:%S&#39;)
Copier après la connexion

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[&#39;time&#39;] = one[&#39;time&#39;].strftime(&#39;%Y-%m-%d %H:%I:%S&#39;)
Copier après la connexion

. %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=) n'est pas sérialisable en JSON

apparaît Un tel message d'erreur...

datetime.datetime(2018, 2, 2, 18, 25, 29, tzinfo=<UTC>) is not JSON serializable
Copier après la connexion

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")
Copier après la connexion

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 &#39;float&#39;>
>>> t = time.localtime()
>>> t
(2008, 2, 13, 10, 56, 44, 2, 44, 0)
>>> type(t)
<type &#39;time.struct_time&#39;>
>>> time.strftime(&#39;%Y-%m-%d&#39;, t)
&#39;2008-02-13&#39;
>>> time.strptime(&#39;2008-02-14&#39;, &#39;%Y-%m-%d&#39;)
(2008, 2, 14, 0, 0, 0, 3, 45, -1)
Copier après la connexion

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 :

Explication sur la façon dont le framework ThinkPHP utilise la redirection pour implémenter la redirection de page

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!