So erhalten Sie die aktuelle Uhrzeit in Python

2890

Mit welchem ​​Modul / welcher Methode wird die aktuelle Uhrzeit ermittelt?

user46646
quelle
Bitte beachten Sie, dass die am häufigsten bewerteten Antworten für die zeitzonoe-naive Datumszeit gelten, während wir sehen, dass in der Produktionsumgebung immer mehr Dienste auf der ganzen Welt miteinander verbunden sind und die zeitzonenbezogene Datumszeit zum erforderlichen Standard wird
Sławomir Lenart,

Antworten:

3050

Verwenden:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150

Und genau die Zeit:

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
15:08:24.789150

Siehe die DokumentationWeitere Informationen finden .

Um die Eingabe zu speichern, können Sie das datetimeObjekt aus dem datetimeModul importieren :

>>> from datetime import datetime

Entfernen Sie dann die Leitung datetime.von allen oben genannten.

Harley Holcombe
quelle
25
Es wäre schön, wenn diese Antwort Zeitzonen abdecken würde (vielleicht UTC als Beispiel) und vielleicht mit time.time () beginnen würde.
Greg Lindahl
4
@Toskan Das Format war nicht Teil der Frage, daher sollte es nicht Teil der Antwort sein. Es gibt bereits einen Link zu mehr Dokumentation des Moduls, der Dinge wie Formatierung enthält.
JiyuuSensei
In welcher Version von Python wurde die ursprüngliche Antwort gegeben? Wenn datetime.datetime.now()ich nur meine interaktive Python 2.7-Konsole eingebe (IronPython wurde noch nicht aktualisiert), verhalte ich das gleiche Verhalten wie im neueren Beispiel print()in der Antwort. Ich habe nicht erfolgreich repliziert, was die ursprüngliche Antwort zeigt (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (Nicht, dass ich wirklich möchte, das print () -Verhalten wird bevorzugt, aber ich bin neugierig.)
RTHarston
@ BobVicktor: Python 2.7, 3.7 und 3.8 verhalten sich für mich alle gleich, nicht sicher, was Sie sehen.
Harley Holcombe
@HarleyHolcombe Hmm ... vielleicht ist es eine IronPython-Sache? Wenn ich tippedatetime.now() alleine print(datetime.now())
tippe, wird
956

Sie können verwenden time.strftime():

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
Sean James
quelle
48
Ist das besser / schlechter als die Antwort von @ ParaMeterz unten? Warum sollten wir das timeModul gegen das datetimeModul verwenden?
Nathan
3
Die aktuelle Stunde meines Computers wird nicht zurückgegeben.
Saeed
5
Dies ist die UTC-Zeit, die sich vom Datum / Uhrzeit-Modul unterscheidet
Voyager
5
@Saeed: Verwenden Sie die Funktion localtime()anstelle von gmtime(), um Ihre Ortszeit abzurufen .
Jeyekomon
3
@Frank Siehe ähnliche Frage auf datetimevs. time.
Packard CPW
621
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')

In diesem Beispiel sieht die Ausgabe folgendermaßen aus: '2013-09-18 11:16:32'

Hier ist die Liste der strftimeRichtlinien .

ParaMeterz
quelle
456

Ähnlich wie Harleys Antwort , aber verwenden Sie die str()Funktion für ein schnelles, etwas besser lesbares Format:

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'
Strahl
quelle
13
Es wird lediglich darum gebeten, die aktuelle Uhrzeit abzurufen und nicht anzuzeigen.
pppery
@ppperry, dann weisen Sie einfach Rays Antwort eine Variable zu - wie: myTime = str (datetime.now ()) .
Lukas
2
Nicht relevant; Der Schritt "str" ​​ist nicht im Rahmen der Frage
pppery
4
@pppery Die OP sagt auch nicht, dass es nicht darum geht, einen String der Zeit zu bekommen. Die Operation sagt überhaupt nicht, was sie mit der Zeit anfangen wollen. Warum ist es also schlecht zu zeigen, wie man sie in eine Zeichenfolge umwandelt? In den meisten Antworten geht es darum, einen String aus der Zeit zu erhalten. Es scheint also ein häufiger Anwendungsfall zu sein. Warum also Rays Antwort herausgreifen? Was nützt es, einfach Zeit zu haben, ohne zu wissen, wie man etwas damit macht? Sie können es drucken oder darauf rechnen, und nur einige der Antworten zeigen, wie man darauf rechnet. Daher denke ich, dass das Drucken / Abrufen einer Zeichenfolge eine häufige Verwendung ist. ;-) (Ich weiß, dass es das ist, wofür ich gekommen bin.)
RTHarston
1
Die Tatsache , dass diese Antwort mehr als 440 upvotes hat legt nahe , dass die geringfügige Zugabe der String - Methode war , um eine Menge von Menschen nützlich.
John
360

Wie erhalte ich die aktuelle Zeit in Python?

Das time Modul

Das timeModul bietet Funktionen, die die Zeit in "Sekunden seit der Epoche" sowie andere Dienstprogramme anzeigen.

import time

Unix-Epochenzeit

Dies ist das Format, in dem Sie Zeitstempel zum Speichern in Datenbanken erhalten sollten. Es ist eine einfache Gleitkommazahl, die in eine Ganzzahl konvertiert werden kann. Es ist auch gut für die Arithmetik in Sekunden, da es die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 Uhr darstellt und im Vergleich zu den anderen Zeitdarstellungen, die wir als nächstes betrachten werden, Speicherlicht ist:

>>> time.time()
1424233311.771502

Dieser Zeitstempel berücksichtigt keine Schaltsekunden, ist also nicht linear - Schaltsekunden werden ignoriert. Obwohl es nicht dem internationalen UTC-Standard entspricht, ist es nahe beieinander und daher für die meisten Fälle von Aufzeichnungen recht gut.

Dies ist jedoch nicht ideal für die menschliche Planung. Wenn Sie ein zukünftiges Ereignis haben, das zu einem bestimmten Zeitpunkt stattfinden soll, möchten Sie diese Zeit mit einer Zeichenfolge speichern, die in ein datetime-Objekt oder ein serialisiertes datetime-Objekt analysiert werden kann (diese werden später beschrieben).

time.ctime

Sie können die aktuelle Uhrzeit auch auf die von Ihrem Betriebssystem bevorzugte Weise darstellen (was bedeutet, dass sie sich ändern kann, wenn Sie Ihre Systemeinstellungen ändern. Verlassen Sie sich also nicht darauf, dass dies auf allen Systemen Standard ist, wie ich es von anderen erwartet habe). . Dies ist normalerweise benutzerfreundlich, führt jedoch normalerweise nicht zu Zeichenfolgen, die chronologisch sortiert werden können:

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

Sie können Zeitstempel auch in eine für Menschen lesbare Form bringen ctime:

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

Diese Konvertierung eignet sich auch nicht zum Aufzeichnen von Aufzeichnungen (außer in Texten, die nur von Menschen analysiert werden - und mit verbesserter optischer Zeichenerkennung und künstlicher Intelligenz wird sich die Anzahl dieser Fälle meiner Meinung nach verringern).

datetime Modul

Das datetimeModul ist auch hier sehr nützlich:

>>> import datetime

datetime.datetime.now

Dies datetime.nowist eine Klassenmethode, die die aktuelle Zeit zurückgibt. Es wird die time.localtimeohne Zeitzoneninfo verwendet (falls nicht angegeben, andernfalls siehe unten stehende Zeitzone). Es verfügt über eine Darstellung (mit der Sie ein äquivalentes Objekt neu erstellen können), die auf der Shell wiedergegeben wird. Wenn sie jedoch gedruckt (oder zu a gezwungen str) wird, liegt sie im lesbaren (und nahezu ISO-) Format vor, und die lexikografische Sortierung entspricht der chronologische Sortierung:

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

Datum / Uhrzeit utcnow

Sie können ein Datum / Uhrzeit-Objekt in UTC-Zeit, einem globalen Standard, auf folgende Weise abrufen:

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

UTC ist ein Zeitstandard, der nahezu der GMT-Zeitzone entspricht. (Während sich GMT und UTC für die Sommerzeit nicht ändern, können ihre Benutzer im Sommer zu anderen Zeitzonen wie der britischen Sommerzeit wechseln.)

datetime timezone bewusst

Keines der bisher erstellten datetime-Objekte kann jedoch problemlos in verschiedene Zeitzonen konvertiert werden. Wir können dieses Problem mit dem pytzModul lösen :

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

Entsprechend haben wir in Python 3 die timezoneKlasse mit einer timezoneangehängten utc- Instanz, die auch die Zeitzone des Objekts bewusst macht (aber das Konvertieren in eine andere Zeitzone ohne das praktische pytzModul bleibt dem Leser als Übung überlassen):

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

Und wir sehen, dass wir vom ursprünglichen utc-Objekt leicht in Zeitzonen konvertieren können.

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

Sie können ein naives datetime-Objekt auch mit der pytzZeitzonenmethode localizeoder durch Ersetzen des tzinfo-Attributs (mit replace, dies geschieht blind) bekannt machen. Dies sind jedoch mehr letzte Mittel als bewährte Methoden:

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

Das pytzModul ermöglicht es uns, die datetimeZeitzone unserer Objekte bekannt zu machen und die Zeiten in die Hunderte von Zeitzonen umzuwandeln, die im pytzModul verfügbar sind .

Man könnte angeblich dieses Objekt für die UTC - Zeit und Speicher serialisiert wird, dass in einer Datenbank, aber es wäre viel mehr Speicher und seinen fehleranfälliger als nur die Speicherung die Unix - Epoche Zeit erfordern, die ich zum ersten Mal unter Beweis gestellt.

Die anderen Arten der Anzeige von Zeiten sind viel fehleranfälliger, insbesondere wenn Daten verarbeitet werden, die aus verschiedenen Zeitzonen stammen können. Sie möchten, dass keine Verwirrung darüber besteht, für welche Zeitzone eine Zeichenfolge oder ein serialisiertes Datum / Uhrzeit-Objekt bestimmt war.

Wenn Sie die Zeit mit Python für den Benutzer anzeigen, ctimefunktioniert dies gut, nicht in einer Tabelle (normalerweise nicht gut sortiert), sondern möglicherweise in einer Uhr. Ich persönlich empfehle jedoch, wenn Sie sich mit Zeit in Python befassen, entweder Unix-Zeit oder ein zeitzonenbewusstes UTC- datetimeObjekt zu verwenden.

Aaron Hall
quelle
133

Tun

from time import time

t = time()
  • t - Float-Nummer, gut für die Zeitintervallmessung.

Es gibt einige Unterschiede für Unix- und Windows-Plattformen.

maxp
quelle
Mein Ergebnis unter Windows 10 home war 1576095264.2682993 - für Windows kann dies nur die Zeit in Sekunden angeben.
PythonMaster202
101
>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

Das gibt die aktuelle GMT im angegebenen Format aus. Es gibt auch eine localtime()Methode.

Diese Seite enthält weitere Details.

Vijay Dev
quelle
69

Die vorherigen Antworten sind alle gute Vorschläge, aber ich finde es am einfachsten zu verwenden ctime():

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

Dies ergibt eine schön formatierte Zeichenfolgendarstellung der aktuellen Ortszeit.

Ätherisch
quelle
Das OP fragte, wie man die Zeit bekommt , nicht wie man sie anzeigt!
TheTechRobo36414519
58

Der schnellste Weg ist:

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'
Nacholibre
quelle
52

Wenn Sie die aktuelle Zeit als timeObjekt benötigen :

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)
bläulich
quelle
36

.isoformat() ist in der Dokumentation, aber noch nicht hier (dies ähnelt stark der Antwort von @Ray Vega):

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'
Emmagras
quelle
35

Fragen Sie das US Naval Observatory , den offiziellen Zeitnehmer der United States Navy.

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])

Wenn Sie im DC-Bereich leben (wie ich), ist die Latenz möglicherweise nicht schlecht ...

C8H10N4O2
quelle
18
@ C8H10N4O2 Während Sie richtig sind, dass die anderen Antworten davon ausgehen, dass Ihr Computer bereits die richtige Zeit kennt, geht diese Antwort davon aus, dass der Computer eine Verbindung zum Internet hat, dass Sie sich in den USA befinden und dass diese Datei niemals entfernt wird. Ändern Sie den Link. Weit mehr Annahmen in dieser Antwort als akzeptiert. Trotzdem klug
Sudobangbang
33

Verwenden Sie Pandas , um die aktuelle Zeit zu ermitteln, um das vorliegende Problem zu überwinden:

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)

Ausgabe:

2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
Prudhvi Indana
quelle
28

Das ist, was ich am Ende gemacht habe:

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

Diese Tabelle ist auch eine notwendige Referenz für die Auswahl der geeigneten Formatcodes, damit das Datum genau so formatiert wird, wie Sie es möchten (aus der Python-Dokumentation "datetime" hier ).

Strftime-Format-Codetabelle

Kristen G.
quelle
2
strftime(time_format)Gibt die aktuelle Ortszeit als Zeichenfolge zurück, die der angegebenen entspricht time_format. Hinweis: time.strftime()und datetime.strftime()unterstützt verschiedene Direktivensätze, z. B. %zwird von time.strftime()Python 2 nicht unterstützt .
JFS
1
Ist es besser, datetime anstelle von time zu verwenden?
Kristen G.
2
Viele timeModulfunktionen sind Thin Wrapper um entsprechende C-Funktionen. datetimeist eine höhere Ebene und es ist in der Regel tragbarer.
JFS
24

Wenn Sie numpy bereits verwenden, können Sie direkt die Funktion numpy.datetime64 () verwenden.

import numpy as np
str(np.datetime64('now'))

für nur Datum:

str(np.datetime64('today'))

Wenn Sie bereits Pandas verwenden, können Sie die Funktion pandas.to_datetime () verwenden

import pandas as pd
str(pd.to_datetime('now'))

oder,

str(pd.to_datetime('today'))
durjoy
quelle
23

Sie können das timeModul verwenden:

import time
print time.strftime("%d/%m/%Y")

>>> 06/02/2015

Die Verwendung des Kapitals Yergibt das ganze Jahr, und die Verwendung ywürde geben06/02/15 .

Sie können auch den folgenden Code verwenden, um eine längere Zeitspanne anzugeben:

time.strftime("%a, %d %b %Y %H:%M:%S")
>>> 'Fri, 06 Feb 2015 17:45:09'
Tom
quelle
20

datetime.now()Gibt die aktuelle Zeit als naives Datum / Uhrzeit-Objekt zurück, das die Zeit in der lokalen Zeitzone darstellt. Dieser Wert kann mehrdeutig sein, z. B. während der Sommerzeitübergänge ("Fallback"). Um Mehrdeutigkeiten zu vermeiden, sollte eine der UTC-Zeitzonen verwendet werden:

from datetime import datetime

utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417

Oder ein zeitzonenbewusstes Objekt, an das die entsprechenden Zeitzoneninformationen angehängt sind (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
jfs
quelle
18
import datetime
date_time = datetime.datetime.now()

date = date_time.date()  # Gives the date
time = date_time.time()  # Gives the time

print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond

Do dir(date)oder beliebige Variablen einschließlich des Pakets. Sie können alle Attribute und Methoden abrufen, die der Variablen zugeordnet sind.

theBuzzyCoder
quelle
@snofty und @ user1016274, wenn import datetimedann ist es datetime.datetime.now()\ n wenn from datetime import datetimedann ist esdatetime.now()
theBuzzyCoder
17
>>> import datetime, time
>>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:21:38:20S'
user2030113
quelle
Ich denke, Sie wollen "datetime.now (). Strftime (...)"
sagen
Ja, es kann so gemacht werden, wie du es gesagt hast. "datetime.datetime.now (). strftime ("% H:% M:% S:% MS ")"
user2030113
3
% MS gibt Ihnen keine Millisekunden !!
ZF007
15

Standardmäßig gibt die now()Funktion die Ausgabe im YYYY-MM-DD HH:MM:SS:MSFormat zurück. Verwenden Sie das folgende Beispielskript, um das aktuelle Datum und die aktuelle Uhrzeit in einem Python-Skript abzurufen und die Ergebnisse auf dem Bildschirm zu drucken. Erstellen Sie eine Datei getDateTime1.pymit dem folgenden Inhalt.

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

Die Ausgabe sieht wie folgt aus:

2018-03-01 17:03:46.759624
Madhusudhan R.
quelle
14

Diese Frage braucht nicht nur deswegen eine neue Antwort ... ein glänzendes neues Spielzeug / Modul ist jedoch eine ausreichende Rechtfertigung. Das ist die Pendelbibliothek , die die Art von Dingen zu tun scheint, die Pfeil versucht hat, außer ohne die inhärenten Fehler und Bugs, die Pfeil betreffen.

Zum Beispiel die Antwort auf die ursprüngliche Frage:

>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.now('utc'))
2018-08-13T19:29:35.051023+00:00

Es gibt viele Standards, die angesprochen werden müssen, einschließlich mehrerer RFCs und ISOs, um die man sich Sorgen machen muss. Lass sie immer durcheinander bringen; Keine Sorge, werfen Sie einen Blick darauf. dir(pendulum.constants)Es gibt jedoch ein bisschen mehr als nur RFC- und ISO-Formate.

Wenn wir lokal sagen, was meinen wir dann? Nun, ich meine:

>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>

Vermutlich meinen die meisten von euch woanders.

Und weiter geht es. Lange Rede, kurzer Sinn: Pendel versucht, für Datum und Uhrzeit zu tun, was Anfragen für HTTP getan haben. Es ist eine Überlegung wert, insbesondere wegen seiner Benutzerfreundlichkeit und der umfangreichen Dokumentation.

Ben
quelle
13

Aktuelle Zeit einer Zeitzone

from datetime import datetime
import pytz

tz_NY = pytz.timezone('America/New_York') 
datetime_NY = datetime.now(tz_NY)
print("NY time:", datetime_NY.strftime("%H:%M:%S"))

tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London time:", datetime_London.strftime("%H:%M:%S"))

tz_India = pytz.timezone('Asia/India')
datetime_India = datetime.now(tz_India)
print("India time:", datetime_India.strftime("%H:%M:%S"))

#list timezones
pytz.all_timezones
Champion-Läufer
quelle
12

Probieren Sie das Pfeilmodul von http://crsmithdev.com/arrow/ aus :

import arrow
arrow.now()

Oder die UTC-Version:

arrow.utcnow()

Fügen Sie .format () hinzu, um die Ausgabe zu ändern:

arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')

Für eine bestimmte Zeitzone:

arrow.now('US/Pacific')

Vor einer Stunde:

arrow.utcnow().replace(hours=-1)

Oder wenn Sie das Wesentliche wollen.

arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'
Back2Basics
quelle
5
Beachten Sie, dass dies arrow.now('Time/Zone')für einige Zeitzonen fehlschlagen kann ( arrowVerwendungen dateutil, bei denen utc -> lokale Konvertierungen , die im Inneren verwendet werden , fehlerhaft sind arrow.now(). Hinweis: Es pytzgibt kein solches Problem . Es gibt auch andere zeitzonenbezogene Probleme
jfs
12

Ich möchte die Zeit mit Millisekunden bekommen. Ein einfacher Weg, um sie zu bekommen:

import time, datetime

print(datetime.datetime.now().time())                         # 11:20:08.272239

# Or in a more complicated way
print(datetime.datetime.now().time().isoformat())             # 11:20:08.272239
print(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

Aber ich will nur Millisekunden , oder? Der kürzeste Weg, um sie zu bekommen:

import time

time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
# 11:34:23.751

Fügen Sie Nullen zur letzten Multiplikation hinzu oder entfernen Sie sie, um die Anzahl der Dezimalstellen anzupassen, oder einfach:

def get_time_str(decimal_points=3):
    return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
y.selivonchyk
quelle
1
Dies funktioniert in Python 3: time.strftime ("% H:% M:% S", time.localtime ()) + '. {}'. Format (int (time.time ()% 1 * 1000))
Greg Graham
11

Mit dieser Funktion können Sie die Uhrzeit abrufen (leider wird weder AM noch PM angezeigt):

def gettime():
    from datetime import datetime
    return ((str(datetime.now())).split(' ')[1]).split('.')[0]

Mit den folgenden Funktionen können Sie die Stunden, Minuten, Sekunden und Millisekunden später zusammenführen:

Stunde:

def gethour():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]

Minute:

def getminute():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]

Zweite:

def getsecond():
    from datetime import datetime
    return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]

Millisekunde:

def getmillisecond():
    from datetime import datetime
    return (str(datetime.now())).split('.')[1]
Richie Bendall
quelle
10

Wenn Sie nur den aktuellen Zeitstempel in ms anzeigen möchten (z. B. um die Ausführungszeit zu messen), können Sie auch das Modul "timeit" verwenden:

import timeit
start_time = timeit.default_timer()
do_stuff_you_want_to_measure()
end_time = timeit.default_timer()
print("Elapsed time: {}".format(end_time - start_time))
motagirl2
quelle
8

Das Folgende ist, was ich benutze, um die Zeit zu erhalten, ohne formatieren zu müssen. Einige Leute mögen die Split-Methode nicht, aber sie ist hier nützlich:

from time import ctime
print ctime().split()[3]

Es wird im Format HH: MM: SS gedruckt.

Amro elaswar
quelle
8

Weil es noch niemand erwähnt hat und dies etwas ist, auf das ich kürzlich gestoßen bin ... Die fromutc () -Methode einer Pytz-Zeitzone in Kombination mit utcnow () von datetime ist der beste Weg, um eine nützliche aktuelle Uhrzeit (und ein Datum) zu erhalten. in jeder Zeitzone.

from datetime import datetime

import pytz


JST = pytz.timezone("Asia/Tokyo")


local_time = JST.fromutc(datetime.utcnow())

Wenn alles, was Sie wollen, die Zeit ist, können Sie das mit bekommen local_time.time().

Kungphu
quelle
Überraschenderweise wurden in allen obigen Antworten keine Zeitzonen erwähnt. Sie sollten auch strftime einschließen, um das gewünschte Format zu erhalten.
GraphicalDot
1
Ich habe das nicht aufgenommen, da es bereits in anderen Antworten behandelt wurde (und die Formatierung der Anzeige nicht Teil der Frage war).
Kungphu
7

Diese Frage bezieht sich auf Python. Da Django jedoch eines der am häufigsten verwendeten Frameworks für Python ist, ist es wichtig zu beachten, dass Sie Django immer timezone.now()anstelle von verwenden können datetime.datetime.now(). Ersteres ist zeitzonenbewusst, letzteres nicht.

Einzelheiten und Gründe dafür finden Sie in dieser SO-Antwort und im Django-Dokumenttimezone.now() .

from django.utils import timezone

now = timezone.now()
Anupam
quelle
7

Sie können dies mit ctime () tun:

from time import time, ctime
t = time()
ctime(t)

Ausgabe:

Sat Sep 14 21:27:08 2019

Diese Ausgaben sind unterschiedlich, da der von zurückgegebene Zeitstempel von ctime()Ihrem geografischen Standort abhängt.

Sai Kiran Sangam
quelle