zeitdifferenz So erhalten Sie die aktuelle Uhrzeit in Python




python zeitdifferenz berechnen (20)

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 .

https://code.i-harness.com

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


Ä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'

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.


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.


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

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


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 der letzten Multiplikation Nullen hinzu oder entfernen Sie sie, um die Anzahl der Dezimalstellen anzupassen, oder einfach nur:

def get_time_str(decimal_points=3):
    return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)

Importieren Sie zuerst das datetime-Modul von datetime

from datetime import datetime

Drucken Sie dann die aktuelle Uhrzeit als 'JJJJ-MM-TT hh: mm: ss'.

print(str(datetime.now())

Um nur die Zeit in der Form 'hh: mm: ss' zu erhalten, wobei ss für die volle Anzahl von Sekunden plus den Bruchteil der Sekunden steht, tun Sie einfach;

print(str(datetime.now()[11:])

Das Konvertieren von datetime.now () in einen String ergibt eine Antwort, deren Format sich anfühlt wie die üblichen DATEN UND ZEITEN, die wir gewohnt sind.


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'

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]

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'

Tun

from time import time

t = time()
  • t - Gleitkommazahl, gut für Zeitintervallmessung.

Bei Unix- und Windows-Plattformen gibt es einige Unterschiede.


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

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)

Pandas , um die aktuelle Uhrzeit zu ermitteln, um das 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

.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'

>>> 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 .


>>> 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.


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.


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.





time