veuillez noter que les réponses les plus votées concernent le datetime naïf du fuseau horaire, alors que nous constatons que dans l'environnement de production, de plus en plus de services à travers le monde sont connectés ensemble et que le datetime sensible au fuseau horaire devient la norme requise
Ce serait bien si cette réponse couvrait les fuseaux horaires (peut-être UTC par exemple) et peut-être commencer par time.time ().
Greg Lindahl
4
@Toskan, le format ne faisait pas partie de la question, il ne devrait donc pas faire partie de la réponse. Il y a déjà un lien fourni vers plus de documentation du module qui contient des trucs comme le formatage.
JiyuuSensei
Dans quelle version de Python la réponse originale a-t-elle été donnée? Le simple fait de taper datetime.datetime.now()dans ma console interactive Python 2.7 (IronPython n'a pas encore été mis à jour) me donne le même comportement que l'exemple le plus récent utilisé print()dans la réponse. Je n'ai pas répliqué avec succès ce que la réponse d'origine montre (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Pas que je le veuille vraiment, le comportement print () est préféré, mais je suis curieux.)
RTHarston
@BobVicktor: Python 2.7, 3.7 et 3.8 donnent tous le même comportement pour moi, je ne sais pas ce que vous voyez.
Harley Holcombe
@HarleyHolcombe Hmm ... c'est peut-être une chose IronPython? Quand je tape datetime.now()seul, il l'imprime de la même manière que le montre votre réponse print(datetime.now())...
Tout ce qu'il demande, c'est d'obtenir l'heure actuelle, pas de l'afficher.
pppery
@ppperry, puis affectez simplement une variable à la réponse de Ray - comme: myTime = str (datetime.now ()) .
Lukas
2
Non pertinent; l'étape "str"
n'entre
4
@pppery L'op ne dit pas non plus qu'il ne s'agit pas d'obtenir une chaîne de temps. L'op ne dit pas du tout ce qu'ils veulent faire avec le temps, alors pourquoi est-ce une mauvaise chose de montrer comment le transformer en chaîne? La plupart des réponses parlent de l'obtention d'une chaîne à partir du moment, donc cela semble être un cas d'utilisation courant, alors pourquoi distinguer la réponse de Ray? À quoi sert simplement de gagner du temps sans savoir quoi en faire ? Vous pouvez l'imprimer ou faire des calculs dessus, et seules quelques réponses montrent comment faire des calculs dessus, donc je pense que l'impression / l'obtention d'une chaîne est une utilisation courante. ;-) (Je sais que c'est pour ça que je suis venu.)
RTHarston
1
Le fait que cette réponse ait plus de 440 votes positifs suggère que l'ajout mineur de la méthode des chaînes a été utile à beaucoup de gens.
John
361
Comment obtenir l'heure actuelle en Python?
Le timemodule
Le timemodule fournit des fonctions qui nous indiquent le temps en "secondes depuis l'époque" ainsi que d'autres utilitaires.
import time
Unix Epoch Time
Il s'agit du format dans lequel vous devez obtenir des horodatages pour l'enregistrement dans les bases de données. Il s'agit d'un simple nombre à virgule flottante qui peut être converti en entier. Il est également bon pour l'arithmétique en secondes, car il représente le nombre de secondes depuis le 1er janvier 1970 00:00:00, et c'est une lumière de mémoire par rapport aux autres représentations du temps que nous examinerons ensuite:
>>> time.time()1424233311.771502
Cet horodatage ne tient pas compte des secondes intercalaires, il n'est donc pas linéaire - les secondes intercalaires sont ignorées. Ainsi, bien qu'il ne soit pas équivalent à la norme UTC internationale, il est proche, et donc assez bon pour la plupart des cas de tenue de registres.
Ce n'est cependant pas idéal pour la planification humaine. Si vous avez un événement futur que vous souhaitez avoir lieu à un certain moment, vous voudrez stocker cette heure avec une chaîne qui peut être analysée dans un objet datetime ou un objet datetime sérialisé (ceux-ci seront décrits plus loin).
time.ctime
Vous pouvez également représenter l'heure actuelle de la manière préférée par votre système d'exploitation (ce qui signifie qu'elle peut changer lorsque vous modifiez vos préférences système, alors ne vous fiez pas à cela pour être standard sur tous les systèmes, comme je l'ai vu d'autres s'attendent) . Ceci est généralement convivial, mais ne donne généralement pas lieu à un tri chronologique:
>>> time.ctime()'Tue Feb 17 23:21:56 2015'
Vous pouvez hydrater les horodatages sous une forme lisible par l'homme avec ctimeégalement:
>>> time.ctime(1424233311.771502)'Tue Feb 17 23:21:51 2015'
Cette conversion n'est pas non plus bonne pour la tenue de dossiers (sauf dans le texte qui ne sera analysé que par les humains - et avec une reconnaissance optique des caractères et une intelligence artificielle améliorées, je pense que le nombre de ces cas diminuera).
datetime module
Le datetimemodule est également très utile ici:
>>>import datetime
datetime.datetime.now
La datetime.nowest une méthode de classe qui renvoie l'heure actuelle. Il utilise le time.localtimesans les informations de fuseau horaire (s'il n'est pas donné, sinon voir le fuseau horaire au-dessous). Il a une représentation (qui vous permettrait de recréer un objet équivalent) en écho sur la coque, mais lorsqu'il est imprimé (ou contraint à a str), il est au format lisible par l'homme (et presque ISO), et le tri lexicographique est équivalent à la tri chronologique:
L'UTC est une norme horaire presque équivalente au fuseau horaire GMT. (Bien que GMT et UTC ne changent pas pour l'heure d'été, leurs utilisateurs peuvent passer à d'autres fuseaux horaires, comme l'heure d'été britannique, pendant l'été.)
prise en compte du fuseau horaire datetime
Cependant, aucun des objets datetime que nous avons créés jusqu'à présent ne peut être facilement converti en différents fuseaux horaires. Nous pouvons résoudre ce problème avec le pytzmodule:
>>>import pytz
>>> then = datetime.datetime.now(pytz.utc)>>> then
datetime.datetime(2015,2,18,4,55,58,753949, tzinfo=<UTC>)
De manière équivalente, en Python 3, nous avons la timezoneclasse avec une timezoneinstance utc attachée, ce qui rend également le fuseau horaire de l'objet conscient (mais la conversion en un autre fuseau horaire sans le pytzmodule pratique est laissée en exercice au lecteur):
Vous pouvez également rendre un objet datetime naïf conscient avec la méthode pytztimezone localize, ou en remplaçant l'attribut tzinfo (avec replace, cela se fait à l'aveugle), mais ce sont plus des derniers recours que les meilleures pratiques:
Le pytzmodule nous permet de rendre nos datetimefuseaux horaires conscients et de convertir les heures en centaines de fuseaux horaires disponibles dans le pytzmodule.
On pourrait ostensiblement sérialiser cet objet pour le temps UTC et stocker que dans une base de données, mais il faudrait beaucoup plus de mémoire et être plus sujettes à l' erreur que de stocker simplement Unix temps Epoch, que je démontrais d' abord.
Les autres façons de visualiser les heures sont beaucoup plus sujettes aux erreurs, en particulier lorsqu'il s'agit de données qui peuvent provenir de différents fuseaux horaires. Vous voulez qu'il n'y ait aucune confusion quant au fuseau horaire auquel une chaîne ou un objet datetime sérialisé était destiné.
Si vous affichez l'heure avec Python pour l'utilisateur, cela ctimefonctionne bien, pas dans un tableau (il ne trie généralement pas bien), mais peut-être dans une horloge. Cependant, je recommande personnellement, lors de l'utilisation de l'heure en Python, d'utiliser l'heure Unix ou un datetimeobjet UTC compatible avec le fuseau horaire .
Pourquoi ne pas demander à l' US Naval Observatory , le chronométreur officiel de la marine américaine?
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)print(tree.xpath('//html//body//h3//pre/text()')[1])
Si vous vivez dans la zone DC (comme moi) la latence n'est peut-être pas trop mauvaise ...
@ C8H10N4O2 Bien que vous ayez raison de penser que les autres réponses supposent que votre ordinateur connaît déjà l'heure exacte, cette réponse suppose que l'ordinateur a une connexion à Internet, que vous êtes aux États-Unis et qu'ils ne supprimeront jamais ce fichier / modifier le lien. Beaucoup plus d'hypothèses dans cette réponse qu'acceptées. Toujours intelligent
malgré tout
34
Utiliser des pandas pour obtenir l'heure actuelle, sorte de surpasser le problème actuel:
import pandas as pd
print(pd.datetime.now())print(pd.datetime.now().date())print(pd.datetime.now().year)print(pd.datetime.now().month)print(pd.datetime.now().day)print(pd.datetime.now().hour)print(pd.datetime.now().minute)print(pd.datetime.now().second)print(pd.datetime.now().microsecond)
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")01/09/201513:11
En outre, ce tableau est une référence nécessaire pour choisir les codes de format appropriés pour obtenir la date formatée exactement comme vous le souhaitez (à partir de la documentation Python "datetime" ici ).
strftime(time_format)renvoie l'heure locale actuelle sous la forme d'une chaîne qui correspond à la donnée time_format. Remarque: time.strftime()et prend en datetime.strftime()charge différents ensembles de directives, par exemple, %zn'est pas pris en charge par time.strftime()Python 2 .
jfs
1
Est-il préférable d'utiliser datetime au lieu de time?
Kristen
2
De nombreuses timefonctions de module sont des enveloppes minces autour des fonctions C correspondantes. datetimeest un niveau supérieur et il est généralement plus portable.
jfs
25
si vous utilisez déjà numpy, vous pouvez directement utiliser la fonction numpy.datetime64 ().
import numpy as np
str(np.datetime64('now'))
pour seule date:
str(np.datetime64('today'))
ou, si vous utilisez déjà des pandas, vous pouvez utiliser la fonction pandas.to_datetime ()
datetime.now()renvoie l'heure actuelle sous la forme d'un objet datetime naïf qui représente l'heure dans le fuseau horaire local. Cette valeur peut être ambiguë, par exemple, pendant les transitions DST ("repli"). Pour éviter toute ambiguïté, l'un des fuseaux horaires UTC doit être utilisé:
from datetime import datetime
utc_time = datetime.utcnow()print(utc_time)# -> 2014-12-22 22:48:59.916417
Ou un objet sensible au fuseau horaire auquel les informations de fuseau horaire correspondantes sont attachées (Python 3.2+):
from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()print(now)# -> 2014-12-23 01:49:25.837541+03:00
import datetime
date_time = datetime.datetime.now()
date = date_time.date()# Gives the date
time = date_time.time()# Gives the timeprint date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
Faites dir(date)ou n'importe quelles variables comprenant le paquet. Vous pouvez obtenir tous les attributs et méthodes associés à la variable.
Je pense que vous voulez dire "datetime.now (). Strftime (...)"
hlin117
oui, cela peut se faire comme vous l'avez dit. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")"
user2030113
3
% MS ne vous donne pas de millisecondes !!
ZF007
16
Par défaut, la now()fonction renvoie la sortie au YYYY-MM-DD HH:MM:SS:MSformat. Utilisez l'exemple de script ci-dessous pour obtenir la date et l'heure actuelles dans un script Python et imprimer les résultats à l'écran. Créez un fichier getDateTime1.pyavec le contenu ci-dessous.
Cette question n'a pas besoin d'une nouvelle réponse juste pour le plaisir ... un jouet / module brillant et neuf, cependant, est une justification suffisante. Cela étant la bibliothèque Pendulum , qui semble faire le genre de choses que la flèche a tenté, sauf sans les défauts et les bogues inhérents qui assaillent la flèche.
Il y a beaucoup de normes qui doivent être adressées, y compris plusieurs RFC et ISO, pour s'inquiéter. Jamais les mélanger; ne vous inquiétez pas, jetez un coup d'œil sur dir(pendulum.constants)Il y a cependant un peu plus que les formats RFC et ISO.
Quand nous disons local, que voulons-nous dire? Eh bien, je veux dire:
Vraisemblablement, la plupart d'entre vous veulent dire ailleurs.
Et ça continue. Pour faire court: Pendulum tente de faire pour la date et l'heure ce que les requêtes ont fait pour HTTP. Cela vaut la peine d'être considéré, en particulier pour sa facilité d'utilisation et sa documentation complète.
Je veux avoir le temps avec des millisecondes. Un moyen simple de les obtenir:
import time, datetime
print(datetime.datetime.now().time())# 11:20:08.272239# Or in a more complicated wayprint(datetime.datetime.now().time().isoformat())# 11:20:08.272239print(datetime.datetime.now().time().strftime('%H:%M:%S.%f'))# 11:20:08.272239# But do not use this:print(time.strftime("%H:%M:%S.%f", time.localtime()), str)# 11:20:08.%f
Mais je veux seulement des millisecondes , non? Le moyen le plus court de les obtenir:
import time
time.strftime("%H:%M:%S", time.localtime())+'.%d'%(time.time()%1*1000)# 11:34:23.751
Ajoutez ou supprimez des zéros de la dernière multiplication pour ajuster le nombre de décimales, ou simplement:
Parce que personne ne l'a encore mentionné, et c'est quelque chose que j'ai rencontré récemment ... la méthode fromutc () d'un fuseau horaire pytz combinée avec utcnow () de datetime est le meilleur moyen que j'ai trouvé pour obtenir une heure actuelle (et une date) utiles dans n'importe quel fuseau horaire.
Étonnamment, toutes les réponses ci-dessus ne mentionnaient pas les fuseaux horaires. vous devez également inclure strftime pour obtenir le format souhaité.
GraphicalDot
1
Je ne l'ai pas inclus car il a déjà été couvert dans d'autres réponses (et le formatage de l'affichage ne faisait pas partie de la question).
kungphu
8
Ce qui suit est ce que j'utilise pour obtenir le temps sans avoir à formater. Certaines personnes n'aiment pas la méthode de partage, mais elle est utile ici:
Cette question s'adresse à Python mais comme Django est l'un des frameworks les plus utilisés pour Python, il est important de noter que si vous utilisez Django, vous pouvez toujours utiliser à la timezone.now()place dedatetime.datetime.now() . Le premier est «conscient» du fuseau horaire tandis que le second ne l'est pas.
Réponses:
Utilisation:
Et juste le temps:
Consultez la documentation pour plus d'informations.
Pour enregistrer la saisie, vous pouvez importer l'
datetime
objet à partir dudatetime
module:Retirez ensuite l'interligne
datetime.
de tout ce qui précède.la source
datetime.datetime.now()
dans ma console interactive Python 2.7 (IronPython n'a pas encore été mis à jour) me donne le même comportement que l'exemple le plus récent utiliséprint()
dans la réponse. Je n'ai pas répliqué avec succès ce que la réponse d'origine montre (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Pas que je le veuille vraiment, le comportement print () est préféré, mais je suis curieux.)datetime.now()
seul, il l'imprime de la même manière que le montre votre réponseprint(datetime.now())
...Vous pouvez utiliser
time.strftime()
:la source
time
module contre ledatetime
module?localtime()
au lieu degmtime()
pour obtenir votre heure locale.datetime
contretime
.Pour cet exemple, la sortie sera comme ceci:
'2013-09-18 11:16:32'
Voici la liste des
strftime
directives .la source
Semblable à la réponse de Harley , mais utilisez la
str()
fonction pour un format lisible rapidement et légèrement plus humain:la source
Le
time
moduleLe
time
module fournit des fonctions qui nous indiquent le temps en "secondes depuis l'époque" ainsi que d'autres utilitaires.Unix Epoch Time
Il s'agit du format dans lequel vous devez obtenir des horodatages pour l'enregistrement dans les bases de données. Il s'agit d'un simple nombre à virgule flottante qui peut être converti en entier. Il est également bon pour l'arithmétique en secondes, car il représente le nombre de secondes depuis le 1er janvier 1970 00:00:00, et c'est une lumière de mémoire par rapport aux autres représentations du temps que nous examinerons ensuite:
Cet horodatage ne tient pas compte des secondes intercalaires, il n'est donc pas linéaire - les secondes intercalaires sont ignorées. Ainsi, bien qu'il ne soit pas équivalent à la norme UTC internationale, il est proche, et donc assez bon pour la plupart des cas de tenue de registres.
Ce n'est cependant pas idéal pour la planification humaine. Si vous avez un événement futur que vous souhaitez avoir lieu à un certain moment, vous voudrez stocker cette heure avec une chaîne qui peut être analysée dans un objet datetime ou un objet datetime sérialisé (ceux-ci seront décrits plus loin).
time.ctime
Vous pouvez également représenter l'heure actuelle de la manière préférée par votre système d'exploitation (ce qui signifie qu'elle peut changer lorsque vous modifiez vos préférences système, alors ne vous fiez pas à cela pour être standard sur tous les systèmes, comme je l'ai vu d'autres s'attendent) . Ceci est généralement convivial, mais ne donne généralement pas lieu à un tri chronologique:
Vous pouvez hydrater les horodatages sous une forme lisible par l'homme avec
ctime
également:Cette conversion n'est pas non plus bonne pour la tenue de dossiers (sauf dans le texte qui ne sera analysé que par les humains - et avec une reconnaissance optique des caractères et une intelligence artificielle améliorées, je pense que le nombre de ces cas diminuera).
datetime
moduleLe
datetime
module est également très utile ici:datetime.datetime.now
La
datetime.now
est une méthode de classe qui renvoie l'heure actuelle. Il utilise letime.localtime
sans les informations de fuseau horaire (s'il n'est pas donné, sinon voir le fuseau horaire au-dessous). Il a une représentation (qui vous permettrait de recréer un objet équivalent) en écho sur la coque, mais lorsqu'il est imprimé (ou contraint à astr
), il est au format lisible par l'homme (et presque ISO), et le tri lexicographique est équivalent à la tri chronologique:datetime's
utcnow
Vous pouvez obtenir un objet datetime en temps UTC, une norme globale, en procédant comme suit:
L'UTC est une norme horaire presque équivalente au fuseau horaire GMT. (Bien que GMT et UTC ne changent pas pour l'heure d'été, leurs utilisateurs peuvent passer à d'autres fuseaux horaires, comme l'heure d'été britannique, pendant l'été.)
prise en compte du fuseau horaire datetime
Cependant, aucun des objets datetime que nous avons créés jusqu'à présent ne peut être facilement converti en différents fuseaux horaires. Nous pouvons résoudre ce problème avec le
pytz
module:De manière équivalente, en Python 3, nous avons la
timezone
classe avec unetimezone
instance utc attachée, ce qui rend également le fuseau horaire de l'objet conscient (mais la conversion en un autre fuseau horaire sans lepytz
module pratique est laissée en exercice au lecteur):Et nous voyons que nous pouvons facilement convertir en fuseaux horaires à partir de l'objet utc d'origine.
Vous pouvez également rendre un objet datetime naïf conscient avec la méthode
pytz
timezonelocalize
, ou en remplaçant l'attribut tzinfo (avecreplace
, cela se fait à l'aveugle), mais ce sont plus des derniers recours que les meilleures pratiques:Le
pytz
module nous permet de rendre nosdatetime
fuseaux horaires conscients et de convertir les heures en centaines de fuseaux horaires disponibles dans lepytz
module.On pourrait ostensiblement sérialiser cet objet pour le temps UTC et stocker que dans une base de données, mais il faudrait beaucoup plus de mémoire et être plus sujettes à l' erreur que de stocker simplement Unix temps Epoch, que je démontrais d' abord.
Les autres façons de visualiser les heures sont beaucoup plus sujettes aux erreurs, en particulier lorsqu'il s'agit de données qui peuvent provenir de différents fuseaux horaires. Vous voulez qu'il n'y ait aucune confusion quant au fuseau horaire auquel une chaîne ou un objet datetime sérialisé était destiné.
Si vous affichez l'heure avec Python pour l'utilisateur, cela
ctime
fonctionne bien, pas dans un tableau (il ne trie généralement pas bien), mais peut-être dans une horloge. Cependant, je recommande personnellement, lors de l'utilisation de l'heure en Python, d'utiliser l'heure Unix ou undatetime
objet UTC compatible avec le fuseau horaire .la source
Faire
t
- nombre flottant, bon pour la mesure d'intervalle de temps.Il existe une certaine différence pour les plates-formes Unix et Windows.
la source
Cela génère le GMT actuel dans le format spécifié. Il existe également une
localtime()
méthode.Cette page contient plus de détails.
la source
Les réponses précédentes sont toutes de bonnes suggestions, mais je trouve qu'il est plus facile à utiliser
ctime()
:Cela donne une représentation sous forme de chaîne bien formatée de l'heure locale actuelle.
la source
Le moyen le plus rapide est:
la source
Si vous avez besoin de l'heure actuelle en tant
time
qu'objet:la source
.isoformat()
est dans la documentation, mais pas encore ici (c'est très similaire à la réponse de @Ray Vega):la source
Pourquoi ne pas demander à l' US Naval Observatory , le chronométreur officiel de la marine américaine?
Si vous vivez dans la zone DC (comme moi) la latence n'est peut-être pas trop mauvaise ...
la source
Utiliser des pandas pour obtenir l'heure actuelle, sorte de surpasser le problème actuel:
Production:
la source
C'est ce que j'ai fini par faire:
En outre, ce tableau est une référence nécessaire pour choisir les codes de format appropriés pour obtenir la date formatée exactement comme vous le souhaitez (à partir de la documentation Python "datetime" ici ).
la source
strftime(time_format)
renvoie l'heure locale actuelle sous la forme d'une chaîne qui correspond à la donnéetime_format
. Remarque:time.strftime()
et prend endatetime.strftime()
charge différents ensembles de directives, par exemple,%z
n'est pas pris en charge partime.strftime()
Python 2 .time
fonctions de module sont des enveloppes minces autour des fonctions C correspondantes.datetime
est un niveau supérieur et il est généralement plus portable.si vous utilisez déjà numpy, vous pouvez directement utiliser la fonction numpy.datetime64 ().
pour seule date:
ou, si vous utilisez déjà des pandas, vous pouvez utiliser la fonction pandas.to_datetime ()
ou,
la source
Vous pouvez utiliser le
time
module:L’utilisation du capital
Y
donne l’année complète et l’utilisationy
donnerait06/02/15
.Vous pouvez également utiliser le code suivant pour donner un temps plus long:
la source
datetime.now()
renvoie l'heure actuelle sous la forme d'un objet datetime naïf qui représente l'heure dans le fuseau horaire local. Cette valeur peut être ambiguë, par exemple, pendant les transitions DST ("repli"). Pour éviter toute ambiguïté, l'un des fuseaux horaires UTC doit être utilisé:Ou un objet sensible au fuseau horaire auquel les informations de fuseau horaire correspondantes sont attachées (Python 3.2+):
la source
Faites
dir(date)
ou n'importe quelles variables comprenant le paquet. Vous pouvez obtenir tous les attributs et méthodes associés à la variable.la source
import datetime
c'est le casdatetime.datetime.now()
\ n sifrom datetime import datetime
c'est le casdatetime.now()
la source
Par défaut, la
now()
fonction renvoie la sortie auYYYY-MM-DD HH:MM:SS:MS
format. Utilisez l'exemple de script ci-dessous pour obtenir la date et l'heure actuelles dans un script Python et imprimer les résultats à l'écran. Créez un fichiergetDateTime1.py
avec le contenu ci-dessous.La sortie ressemble à ci-dessous:
la source
Cette question n'a pas besoin d'une nouvelle réponse juste pour le plaisir ... un jouet / module brillant et neuf, cependant, est une justification suffisante. Cela étant la bibliothèque Pendulum , qui semble faire le genre de choses que la flèche a tenté, sauf sans les défauts et les bogues inhérents qui assaillent la flèche.
Par exemple, la réponse à la question d'origine:
Il y a beaucoup de normes qui doivent être adressées, y compris plusieurs RFC et ISO, pour s'inquiéter. Jamais les mélanger; ne vous inquiétez pas, jetez un coup d'œil sur
dir(pendulum.constants)
Il y a cependant un peu plus que les formats RFC et ISO.Quand nous disons local, que voulons-nous dire? Eh bien, je veux dire:
Vraisemblablement, la plupart d'entre vous veulent dire ailleurs.
Et ça continue. Pour faire court: Pendulum tente de faire pour la date et l'heure ce que les requêtes ont fait pour HTTP. Cela vaut la peine d'être considéré, en particulier pour sa facilité d'utilisation et sa documentation complète.
la source
Heure actuelle d'un fuseau horaire
la source
Essayez le module flèche de http://crsmithdev.com/arrow/ :
Ou la version UTC:
Pour modifier sa sortie, ajoutez .format ():
Pour un fuseau horaire spécifique:
Il y a une heure:
Ou si vous voulez l'essentiel.
la source
arrow.now('Time/Zone')
peut échouer pour certains fuseaux horaires (arrow
utilisationsdateutil
qui ont cassé utc -> conversions locales qui sont utilisées à l'intérieurarrow.now()
. Remarque:pytz
n'a pas un tel problème . En outre, il existe d'autres problèmes liés au fuseau horaireJe veux avoir le temps avec des millisecondes. Un moyen simple de les obtenir:
Mais je veux seulement des millisecondes , non? Le moyen le plus court de les obtenir:
Ajoutez ou supprimez des zéros de la dernière multiplication pour ajuster le nombre de décimales, ou simplement:
la source
Vous pouvez utiliser cette fonction pour obtenir l'heure (malheureusement, elle ne dit pas AM ou PM):
Pour obtenir les heures, minutes, secondes et millisecondes à fusionner plus tard, vous pouvez utiliser ces fonctions:
Heure:
Minute:
Seconde:
Milliseconde:
la source
Si vous voulez juste l'horodatage actuel en ms (par exemple, pour mesurer le temps d'exécution), vous pouvez également utiliser le module "timeit":
la source
Parce que personne ne l'a encore mentionné, et c'est quelque chose que j'ai rencontré récemment ... la méthode fromutc () d'un fuseau horaire pytz combinée avec utcnow () de datetime est le meilleur moyen que j'ai trouvé pour obtenir une heure actuelle (et une date) utiles dans n'importe quel fuseau horaire.
Si tout ce que vous voulez, c'est le temps, vous pouvez l'obtenir avec
local_time.time()
.la source
Ce qui suit est ce que j'utilise pour obtenir le temps sans avoir à formater. Certaines personnes n'aiment pas la méthode de partage, mais elle est utile ici:
Il sera imprimé au format HH: MM: SS.
la source
Cette question s'adresse à Python mais comme Django est l'un des frameworks les plus utilisés pour Python, il est important de noter que si vous utilisez Django, vous pouvez toujours utiliser à la
timezone.now()
place dedatetime.datetime.now()
. Le premier est «conscient» du fuseau horaire tandis que le second ne l'est pas.Voir cette réponse SO et le doc Django pour les détails et la justification derrière
timezone.now()
.la source
Vous pouvez le faire en utilisant ctime ():
production:
Sat Sep 14 21:27:08 2019
Ces sorties sont différentes car l'horodatage renvoyé par
ctime()
dépend de votre situation géographique.la source