Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Python-Zeitverarbeitung
1. Zwei Möglichkeiten, die aktuelle Uhrzeit abzurufen:
Datum/Uhrzeit importieren
now = time.strftime("%Y-%m -%d %H:%M:%S")
Jetzt drucken
now = datetime.datetime.now()
Jetzt drucken
2. Holen Sie sich das Datum des letzten Tages des letzten Monats (der erste Tag dieses Monats minus 1 Tag)
last = datetime.date(datetime.date.today( ) .year,datetime.date.today().month,1)-datetime.timedelta(1)
print last
3. Ermitteln Sie den Zeitunterschied (die Einheit des Zeitunterschieds ist Sekunden). , oft in Berechnungsprogrammen verwendet Laufzeit)
starttime = datetime.datetime.now()
#long running
endtime = datetime.datetime.now ()
print (endtime - starttime).seconds
4. Berechnen Sie die Zeit 10 Stunden rückwärts von der aktuellen Zeit
d1 = datetime.datetime.now()
d3 = d1 datetime.timedelta(hours=10)
d3.ctime()
Die beiden häufig verwendeten Klassen sind: datetime und timedelta. Sie können voneinander addiert oder subtrahiert werden. Jede Klasse verfügt über einige Methoden und Attribute zum Anzeigen bestimmter Werte. Beispielsweise kann datetime Folgendes anzeigen: Tage (Tag), Stunden (Stunde), Wochentag (weekday()) usw.; , Sekunden Zahl (Sekunden) usw.
5. Zeit- und Datumsformatierungssymbole in Python:
%y steht für eine zweistellige Jahreszahl (00 -99)
%Y vierstellige Jahresdarstellung (000-9999)
%m Monat (01-12)
%d Tag im Monat ( 0- 31)
%H 24-Stunden-Stunde (0-23)
%I 12-Stunden-Stunde (01-12)
%M Minuten (00=59)
%S Sekunden (00-59)
%ein lokaler vereinfachter Wochenname
%Ein lokaler vollständiger Wochentagsname
%b Lokaler vereinfachter Monatsname
%B Lokaler vollständiger Monatsname
%c Lokale entsprechende Datumsdarstellung und Uhrzeitdarstellung
%j Tag im Jahr (001 -366)
%p Äquivalent zu lokalem Vormittag oder Nachmittag
%U Anzahl der Wochen im Jahr (00-53) Sonntag ist der Wochenanfang
% w Der Wochentag (0-6), Sonntag ist der Wochenanfang
%W Die Anzahl der Wochen im Jahr (00-53) Montag ist der Wochenanfang
%x Die entsprechende lokale Datumsdarstellung
%X Die entsprechende lokale Zeitdarstellung
%Z Der Name der aktuellen Zeitzone
%% Die %-Zahl selbst
Anbei ist ein Beispielcode:
Code-Hervorhebung erstellt mit Actipro CodeHighlighter (Freeware)http://www.CodeHighlighter.com/-->#-*-coding:utf-8-* -
Datum/Uhrzeit, Kalender importieren
def getYesterday():
today=datetime.date.today()
oneday =datetime.timedelta( days=1)
today=today-oneday
return today
def getToday():
return datetime.date .today()
#Erhalten Sie die Daten der letzten Tage für den angegebenen Parameter und geben Sie eine Liste zurück
def getDaysByNum(num):
today =datetime.date.today()
oneday=datetime.timedelta(days=1)
li=[]
for i in range(0,num):
#Heute minus einen Tag, jeden Tag )
li.append(datetostr(today))
return li
#Konvertieren Sie die Zeichenfolge in den Datetime-Typ
def strtodatetime(datestr,format):
return datetime.datetime.strptime(datestr,format)
# Zeit in String konvertieren, das Format ist 2008-08-02
def datetostr(date):
return str(date)[0:10]
#Wie viele Tage liegen zwischen zwei Daten, zum Beispiel: 03.10.2008 und 01.10.2008 liegen zwei Tage auseinander
def datediff(beginDate, endDate):
format="%Y-%m-%d"; bd=strtodatetime(beginDate,format)
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1) count =0
while bd!=ed:
ed=ed-oneday
count = 1
return count
#Alle Zeiten in zwei Zeiträumen abrufen und Liste zurückgeben
def getDays(beginDate,endDate):
format="%Y-%m-%d";
bd=strtodatetime(beginDate,format)
ed=strtodatetime(endDate,format)
oneday=datetime.timedelta(days=1)
num=datediff (beginDate,endDate) 1
li=[]
für i in range(0,num):
li.append(datetostr(ed))
ed=ed-oneday
return li
#Das aktuelle Jahr abrufen ist ein String
def getYear():
return str(datetime.date.today())[0:4]
#Get den aktuellen Monat als String
def getMonth():
return str(datetime.date.today())[5:7]
#Get den aktuellen Tag als String
def getDay ():
return str(datetime.date.today())[8:10]
def getNow():
return datetime.datetime.now()
print getToday()
print getYesterday()
print getDaysByNum(3)
print getDays('2008-10-01','2008-10-05')
print '2008-10-04 00:00:00'[0:10]
print str(getYear()) getMonth() getDay()
print getNow()