datetime aktualisieren - So erhalten Sie die aktuelle Uhrzeit in Python



vergleichen datum (25)

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

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

Nur für das 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'))

Was ist das Modul / die Methode, um die aktuelle Uhrzeit zu ermitteln?


Wie bekomme ich die aktuelle Uhrzeit in Python?

Das Zeitmodul

Das Zeitmodul stellt Funktionen bereit, die uns 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 umgewandelt werden kann. Es ist auch gut für das Rechnen in Sekunden, da es die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 Uhr darstellt, und es ist relativ zu den anderen Zeitdarstellungen, die wir als nächstes betrachten werden, ein Erinnerungslicht:

>>> time.time()
1424233311.771502

Dieser Zeitstempel berücksichtigt keine Schaltsekunden, daher ist er nicht linear - Schaltsekunden werden ignoriert. Obwohl dies nicht dem internationalen UTC-Standard entspricht, ist es doch nahe und daher für die meisten Fälle der Aufzeichnung von Daten gut.

Dies ist jedoch nicht ideal für die Planung von Menschen. Wenn Sie ein zukünftiges Ereignis zu einem bestimmten Zeitpunkt haben möchten, müssen Sie diese Zeit mit einer Zeichenfolge speichern, die in einem Datums- oder einem Serienzeitobjekt analysiert werden kann (diese werden später beschrieben).

time.ctime

Sie können die aktuelle Uhrzeit auch so darstellen, wie es von Ihrem Betriebssystem bevorzugt wird (dh, es kann sich ändern, wenn Sie die Systemeinstellungen ändern. Verlassen Sie sich nicht darauf, dass dies Standard für alle Systeme ist, wie ich es bei anderen erwartet habe.) . Dies ist normalerweise benutzerfreundlich, führt jedoch nicht zu Zeichenfolgen, die chronologisch sortiert werden können:

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

Sie können mit ctime auch Zeitstempel in eine vom Menschen lesbare Form ctime :

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

Diese Konvertierung eignet sich auch nicht für die Aufbewahrung von Aufzeichnungen (außer in Text, der nur von Menschen analysiert wird - und mit verbesserter optischer Zeichenerkennung und künstlicher Intelligenz denke ich, dass sich die Anzahl dieser Fälle verringert).

datetime Modul

Das datetime Modul ist auch hier sehr nützlich:

>>> import datetime

datetime.datetime.now

Die datetime.now ist eine Klassenmethode, die die aktuelle Uhrzeit zurückgibt. Es verwendet die time.localtime ohne die Zeitzoneninformationen (wenn nicht angegeben, andernfalls siehe Timezone). Es hat eine Repräsentation (die es Ihnen ermöglichen würde, ein äquivalentes Objekt wiederherzustellen) auf der Shell, aber wenn gedruckt (oder in eine str ), ist es in einem lesbaren (und nahezu ISO-) Format, und die lexikografische Sortierung entspricht die 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

datetime's utcnow

Sie können ein datetime-Objekt in UTC-Zeit, einem globalen Standard, erhalten, indem Sie Folgendes tun:

>>> 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 der GMT-Zeitzone nahezu entspricht. (Während sich GMT und UTC während der Sommerzeit nicht ändern, können die Benutzer während des Sommers zu anderen Zeitzonen wie der britischen Sommerzeit wechseln.)

Datumszeitzone bewusst

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

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

Äquivalent dazu haben wir in Python 3 die timezone mit einer angehängten utc- timezone , die auch die Zeitzone des Objekts kenntlich macht (die Konvertierung in eine andere Zeitzone ohne das praktische pytz Modul wird dem Leser jedoch 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 das ursprüngliche utc-Objekt problemlos 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 Methode pytz localize pytz oder durch Ersetzen des Attributs tzinfo (durch replace wird dies blind gemacht). Dies sind jedoch eher die letzten Mittel als die bewährten 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>)

Mit dem pytz Modul können wir unsere datetime Objekte auf die Zeitzone aufmerksam machen und die Zeit in Hunderte von Zeitzonen umwandeln, die im pytz Modul verfügbar sind.

Man könnte dieses Objekt scheinbar für UTC-Zeit serialisieren und in einer Datenbank speichern, aber es würde weitaus mehr Speicherplatz erfordern und wäre fehleranfälliger als das Speichern der Unix-Epoche-Zeit, die ich zuerst demonstriert hatte.

Die anderen Betrachtungszeiten sind wesentlich fehleranfälliger, insbesondere wenn es sich um Daten handelt, die aus verschiedenen Zeitzonen stammen. Sie möchten keine Verwirrung darüber haben, für welche Zeitzone ein String oder ein serialisiertes datetime-Objekt vorgesehen ist.

Wenn Sie die Uhrzeit mit Python für den Benutzer anzeigen, funktioniert ctime gut, nicht in einer Tabelle (die Sortierung ist normalerweise nicht gut), aber möglicherweise in einer Uhr. Ich empfehle jedoch persönlich, wenn Sie sich mit der Zeit in Python beschäftigen, entweder mit Unix-Zeit oder mit einem Zeitzonen-fähigen UTC- datetime .


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

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

Sie können das Zeitmodul verwenden.

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

>>> 06/02/2015

Die Verwendung des Kapitals Y ergibt das volle Jahr, und die Verwendung von y ergibt den 06/02/15 .

Sie können auch eine längere Zeit verwenden.

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

Wenn Sie nur den aktuellen Zeitstempel in ms wünschen (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))

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

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

Es wird im Format HH: MM: SS gedruckt.


>>> import datetime, time
>>> time = strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:20:58:20S'

>>> from datetime import datetime
>>> datetime.now().strftime('%Y-%m-%d %H:%M:%S')

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

Hier ist die Liste der strftime .


import datetime
date_time = str(datetime.datetime.now())
date = date_time.split()[0]
time = date_time.split()[1]

Datum wird gedruckt Datum und Uhrzeit werden gedruckt.


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

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'

from time import ctime

// Day {Mon,Tue,..}
print ctime().split()[0]
// Month {Jan, Feb,..}
print ctime().split()[1]
// Date {1,2,..}
print ctime().split()[2]
// HH:MM:SS
print ctime().split()[3]
// Year {2018,..}
print ctime().split()[4]

Wenn Sie ctime () aufrufen, werden Sekunden in Zeichenfolge im Format 'Tag Monat Datum HH: MM: SS Jahr' (z. B. 'Mi 17. Januar 16:53:22 2018') konvertiert. Dann rufen Sie die split () -Methode auf erstellt eine Liste aus Ihrer Zeichenfolge ['Mi', 'Jan', '17', '16:56:45', '2018'] (Standardwert ist Leerzeichen).

Klammern werden verwendet, um das gewünschte Argument in der Liste auszuwählen.

Man sollte nur eine Codezeile anrufen. Man sollte sie nicht so nennen, wie ich es tat, das war nur ein Beispiel, weil in manchen Fällen andere Werte auftreten, seltene, aber nicht unmögliche Fälle.


Die Funktion now() gibt standardmäßig die Ausgabe im Format YYYY-MM-DD HH:MM:SS:MS . 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 die Datei getDateTime1.py mit 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

Benutzen:

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

>>> print(datetime.datetime.now())
2018-07-29 09:17:13.812189

Und genau die Zeit:

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

>>> print(datetime.datetime.now().time())
09:17:51.914526

Weitere Informationen finden Sie in der Dokumentation .

Um die Eingabe zu speichern, können Sie das datetime Objekt aus dem datetime Modul datetime :

>>> from datetime import datetime

Entfernen Sie dann die führende datetime. von allen oben genannten.


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

dir(date) oder beliebige Variablen einschließlich des Pakets. Sie können alle mit der Variablen verknüpften Attribute und Methoden abrufen.


Diese Frage braucht keine neue Antwort, nur um der Sache willen ... ein glänzendes, neuartiges Spielzeug / Modul ist jedoch eine ausreichende Begründung. Dies ist die Pendelbibliothek , die die Dinge zu tun scheint, die Pfeil versucht hat, außer ohne die inhärenten Mängel und Wanzen, die den Pfeil belasten.

Zum Beispiel die Antwort auf die ursprüngliche Frage:

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

Es gibt viele Standards, die angegangen werden müssen, einschließlich mehrerer RFCs und ISOs, um sich darüber Sorgen zu machen. Bring sie immer durcheinander; Keine Sorge, werfen Sie einen Blick in das dir(pendulum.constants) .

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

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

Vermutlich meinen die meisten von Ihnen irgendwo anders.

Und weiter geht es. Um es kurz zu machen: Pendulum versucht, Datum und Uhrzeit zu erledigen, was Anfragen für HTTP getan haben. Es ist eine Überlegung wert, vor allem wegen der Benutzerfreundlichkeit und der umfangreichen Dokumentation.


Sie können time.strftime() :

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'

Simpel und einfach:

Verwenden des datetime Moduls

import datetime
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

Ausgabe:

2017-10-17 23:48:55

ODER

time ,

import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

Ausgabe:

2017-10-17 18:22:26

Alle guten Vorschläge, aber ich finde es am einfachsten, ctime() selbst zu verwenden:

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.


>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

Dadurch wird die aktuelle GMT im angegebenen Format ausgegeben. Es gibt auch eine localtime () -Methode.

Diese page enthält mehr Details.


Testen Sie das Pfeilmodul von http://crsmithdev.com/arrow/ :

import arrow
arrow.now()

Oder die UTC-Version:

arrow.utcnow()

Um die Ausgabe zu ändern, fügen Sie .format () hinzu:

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 den Kern wollen.

arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'

Sie können diese Funktion verwenden, um die Uhrzeit zu ermitteln (leider heißt es nicht AM oder PM):

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

Um die Stunden, Minuten, Sekunden und Millisekunden zum späteren Zusammenführen zu erhalten, können Sie diese Funktionen verwenden:

Stunde:

def gethour():
        from datetime import datetime
        return 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 return (str(datetime.now())).split('.')[1]

Der schnellste Weg ist

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

Dies ist, was ich am Ende ging mit:

>>>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, um das gewünschte Datum zu formatieren (aus der Python-Dokumentation "datetime" here ).


Wenn Sie die aktuelle Uhrzeit als Zeitobjekt benötigen:

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)

Die beste Möglichkeit, die Zeit in Python zu verzögern, ist die Verwendung der Zeitbibliothek. So was:

import time
time.sleep(10)

Ersetzen Sie einfach 10 durch die Anzahl der Sekunden, die Sie verzögern möchten. Sie können Formate wie '10 .1 ',' 5.07 'usw. verwenden.

Es wird nicht empfohlen, dies mit Tkinter zu verwenden





python datetime time