codestory

Die Anleitung zu Python Date Time

  1. Die Überblick
  2. Der Begriff über Ticks
  3. time module
  4. datetime module
  5. datetime.timedelta
  6. datetime.date

1. Die Überblick

Python bietet Ihnen 4 Module über die Datum und die Zeit.
Module
Die Bezeichnung
time
time ist eine Module, die die Funktion und die Konstante über das Datum und die Zeit umfasst. Keine Klasse werden in dieser Module definiert
datetime
Diese Module definiert einige Klasse zur Vertretung des Datum und der Zeit
calendar
Diese Module fasst die Funktion über den Kalender um. Sie definiert die Klasse zur Kalendervertretung und die betreffenden Ausnahmen (exception)
locale
Diese Module fasst die Funktion zur Formatierung oder zur Analyse (parse) des Datum und der Zeit nach dem locale
datetime module:
datetime ist eine Module, die objektsorientiert designed wird um mit dem Datum und der Zeit im Python umzugehen. Sie hat einige Klasse zur Vertretung des Datum und der Zeit
Die Klasse
Die Bezeichnung
datetime.date
Ein Objekt date vertritt das Datum (date), umfasst die Zeit nach dem Gregorian Kalender
datetime.datetime
Ein Objekt datetime vertritt das Datum (date) und die Zeit nach dem Gregorian Kalender
datetime.time
Ein Objekt time vertritt die Zeit (time) ohne das Datum (date).
datetime.tzinfo
Ist eine base abstract class für die timezone Informationsobjekte.
datetime.timezone
Ist eine direkt Subklasse der Klasse tzinfo nach dem UTC Standard (Coordinated Universal Time)
datetime.timedelta
Das Objekt timedelta bezeichnet einen Zeitsraum (duration), der zwischen 2 Zeitpunkte liegt
calendar module:
calendar ist eine Module, die die Funktion, einige Klasse über den Kalender versorgt. Sie untersützt bei der Erstellung (generate) des Bildes des Kalender in der Format von text, html, ....

2. Der Begriff über Ticks

In der Computerwissenschaft ist das Datum 12h00 am 1. Januar 1970 sehr besonder. Seit 1.Januar 1970 wird die Zeit gerechnet. Diese Zeitpunkt wird epoch genannt (Computer-Ära sogenannt).

Im Python wird das Zeitraum zwischen die momentan Zeitpunkt und die obengenannte besondere Zeitpunkt die Sekundär (seconds) gerechnet. Das Zeitraum wird Ticks.genannt
Die Funktion time() in der Module time bezeichnet die Sekunde (seconds) von der Zeitpunkt von Mittelnacht (12h00) am 1. Januar 1970 bis monentan. Sie gibt die Gleitpunktzahl rück (floating point)
ticketExample.py
# Die Module time importieren.
import time;

# Die Anzahl der Sekunde seit 12h morgen am 1-1-1970 
ticks = time.time()  
print ("Number of ticks since 12:00am, January 1, 1970: ", ticks)
Output:
Number of ticks since 12:00am, January 1, 1970: 1492244686.7766237

3. time module

time ist eine Module, die nur die Funktion und die Konstante über das Datum und die Zeit einschließen. Einige Klasse, die auf C/C++ schreiben, werden auf diese Module definiert. Zum Beispiel die Klasse struct_time.
Auf die Module time wird die Zeit durch Ticks oder struct_time vertretet. Sie hat die Funktion um Ticks oder struct_time zum String zu formatieren (format) und umgekehrt einen String zu Ticks oder struct_time.zu analysieren (parse)
0
tm_year
(for example, 1993)
1
tm_mon
range [1, 12]
2
tm_mday
range [1, 31]
3
tm_hour
range [0, 23]
4
tm_min
range [0, 59]
5
tm_sec
range [0, 61]; See more below
6
tm_wday
range [0, 6], Monday is 0
7
tm_yday
range [1, 366]
8
tm_isdst
0, 1 or -1; see below
N/A
tm_zone
abbreviation of timezone name
N/A
tm_gmtoff
offset east of UTC in seconds
tm_sec
Der Raum von der Sekunde (second) liegt von 0 bis 61; Das wird die doppelt Schaltsekunde (double leap seconds) erklärt. Obwohl es sehr selten ist
Die Funktion von time ruft auf die Funktionen, die in der Sprache C geschrieben werden,auf. Unten ist die Liste der üblichen Funktionen. Sie können für mehr Detail die Dokument auf die offiziellen Website vom Python.gucken
Ticks ==> struct_time
Die Funktion
Die Bezeichnung
time.gmtime([secs])
Die Zeit in die Sekunde ab die Zeitpunkt spoch zu einem struct_time in UTC rechnen, davon ist dst 0. Wenn der Parameter secs nicht gegeben wird oder None, hat er die standardmäßige Rückgabewert durch die Funktion time().
time.localtime([secs])
So gleich wie die Funktion gmtime() aber sie wird in die lokalen Zeit (local time) umgesetzt. und dst hat die Wert von 1.
Die Funktion gmtime([secs]) und localtime([secs]) geben auch das Typ struct_time.rück
time_gmtimeExample.py
import time

# Eine Sekunde nach dem Computer-Epoch.
# Die Funktion gibt ein Struct Typ: struct_time zurück
ts = time.gmtime(1) 
print ("1 seconds after epoch: ") 
print (ts)  
print ("\n")

# Das Monentan wie time.gmtime( time.time() )
# Die Funktion gibt ein Struct Typ: struct_time zurück
ts = time.gmtime() 
print ("struct_time for current time: ")
print (ts)
struct_time ==> Ticks
Sie können ein struct_time oder eine Tuple, die die Zeit vertreten, zu einem Ticks umsetzen (die Sekunde wird ab die Zeitpunkt spoch gerechnet).
time_mktime_example.py
import time

a_struct_time = time.localtime() 
print ("Current time as struct_time: ");
print (a_struct_time) 
# struct_time oder Tuple zur Ticks umwandeln.
ticks = time.mktime(a_struct_time)  
print ("Ticks: ", ticks)

# Eine Tuple hat 9 Elemente.
aTupleTime = ( 2017, 4, 15, 13, 5, 34, 0, 0, 0) 
print ("\n")
print ("A Tuple represents time: ")
print (aTupleTime)

# struct_time oder Tuple zur Ticks umwandeln.
ticks = time.mktime(aTupleTime) 
print ("Ticks: ", ticks)
struct_time, Ticks ==> string
Die Funktion
Die Bezeichnung
time.asctime([struct_t])
Eine tuple oder struct_time ,die für die Zeit durch gmtime() oder localtime() vertreten, zu einem String wie : 'Sun Jun 20 23:21:05 1993' umsetzen. Wenn der Parameter struct_t nicht gebieten wird, wird die Zeit durch localtime() benutzt. Die lokale Information (locale) werden durch asctime().nicht benutzt
time.ctime([secs])
Umsetzung der Zeit in die Sekunde (seconds) ab die Zeitpunkt epoch zu einen String, der die Zeit des Computer vertretet (local time). Wenn der Parameter secs nicht gebietet wird oder None, wird die momentan Zeit durch time() benutzt.ctime(secs) ist so gleich wie asctime(localtime(secs)). Die lokale Information (locale) wird durch ctime().nicht benutzt
time_asctime_ctime_example.py
import time
 
# Eine Tuple mit 9 Elemente 
#  (Year, month, day, hour, minute, second, wday, yday, isdst)
a_tuple_time = (2017, 4, 15 , 22 , 1, 29, 0, 0, 0) 
a_timeAsString = time.asctime(a_tuple_time) 
print ("time.asctime(a_tuple_time): ", a_timeAsString) 

a_struct_time = time.localtime()
print ("a_struct_time: ", a_struct_time)

a_timeAsString = time.asctime(a_struct_time) 
print ("time.asctime(a_struct_time): ", a_timeAsString)

# Die Anzahl der Sekunde seit 12h morgen am 1-1-1970 bis die aktuellen Zeit
ticks = time.time() 
a_timeAsString = time.ctime(ticks)  
print ("time.ctime(ticks): ", a_timeAsString)
Analysieren und formatieren
Die Module time bietet einige Funktionen um einen String zur Zeit zu analysieren (parse) und umgekehrt eine Format zu einen String.
Die Funktion
Die Bezeichnung
time.strptime(string[, format] )
Einen String einer Zeit nach einer Format analysieren. Rückgabe eines struct_time wie die Rückgabe durch die Funktion gmtime() oder localtime().
time.strftime(format [, t] )
Umsetzung einer Tuple oder struct_time wie die Rückgabe durch die Funktion von gmtime() oder localtime() zu einem vom Parameter format bestimmten String. Wenn sie nicht gebietet wird, wird die Zeit durch localtime() benutzt. Der Parameter format muss ein String sein. ValueError kann geworfen sein (throw) wenn ein Feld (field) im Parameter 't' außer dem erlaubten Raum liegt
Zum Beispiel: einen String zur Zeit mit Typ struct_time.analysieren
time_strptime_example.py
import time 
# Ein die Zeit vertrettendes String.
aStringTime = "22-12-2007 23:30:59"  

a_struct_time = time.strptime(aStringTime, "%d-%m-%Y %H:%M:%S") 
print ("a_struct_time:") 
print (a_struct_time)
Über die Module time mehr lesen

4. datetime module

datetime ist eine Module, die in die Richtung von einem Objekt zum Umgang mit Datum und der Zeit im Python gemacht wird. Es definiert einige Klasse für die Vertretung der Zeit und Datum
Die Klasse
Die Bezeichnung
datetime.date
Ein Objekt date vertretet einem Datum (date) ohne die Zeit nach dem Kalendar Gregorian.
datetime.datetime
Ein Objekt datetime vertretet einem Datum und die Zeit nach dem Kalendar Gregorian.
datetime.time
Ein Objekt time vertretet die Zeit (time) ohne das Datum (date).
datetime.tzinfo
Eine abstrakte Basisklasse (base abstract class) gibt dem Objekt die Information der Zeitzone
datetime.timezone
Eine direkte Subklasse der Klasse tzinfo nach dem UTC Standard (Coordinated Universal Time)
datetime.timedelta
A timedelta object represents a duration, the difference between two dates or times.

5. datetime.timedelta

timedelta ist eine Klasse in der Module datetime, sie bezeichnet einen Zeitraum. Das ist der Unterschied zwischen 2 Zeit
Die Klasse timedelta hat 7 Attributes und die standardmäßige Wert von allen sind 0.
Attribute
Attribute
Range
days
-999999999 : 999999999
seconds
0 : 86399
microseconds
1 seconds = 1000,000 microseconds
0 : 999999
milliseconds
1 seconds = 1000 milliseconds
minutes
hours
weeks
Die Unterstützungsoperator.
t1 = t2 + t3
t2 = (hours = 10, seconds= 2)
t3 = (hours = 1, minutes = 3)
--> t1 = (hours= 11, minutes = 3, seconds = 2)
t1 = t2 - t3
t2 = (hours = 10, seconds= 2)
t3 = (hours = 1, minutes = 3)
--> t1 = (hours= 8, minutes = 57, seconds = 2)
t1 = t2 * i
t1 = i * t2
t2 = (hours = 10, seconds= 2)
i = 3
--> t1 = (days =1, hours = 6, seconds= 6)
t1 = t2
t2 = (hours = 25, seconds= 2)
--> t1 = (days: 1, hours: 1, seconds: 2)
+t1
return t1
-t1
t1 = (hours = 10, seconds= 2)
--> -t1 = (days = -1, hours = 13, minutes = 59, seconds= 58)
abs(t)
Absolute value, equivalent to + t when t.days> = 0, and is -t when t.days <0.
t = (hours= -25, minutes = 3)
--> t = (days = -2, hours = 23, minutes = 3)
--> abs(t) = (days = 1, hours = 0, minutes = 57)
str(t)
Returns the string in the form [D day [s],] [H] H: MM: SS [.UUUUUU], D can get negative value.
repr(t)
Returns a string in the form datetime.timedelta (D [, S [, U]]), D can get negative value

6. datetime.date

datetime.date ist eine Klasse. Ihr Objekt vertretet das Datum (date) ohne die Zeit
Constructor
** constructor **
# MINYEAR <= year <= MAXYEAR
# 1 <= month <= 12
# 1 <= day <= die Anzahl von Tagen durch den Jahr und Monat
date (year, month, day)
Der Constructor der Klasse date kann den Fehler ValueError werfen wenn die angewiesene Wert ungültig ist (außer der Bereich)
Die Konstanste
Die Konstante
Die Bezeichnung
date.min
Den ersten Tag in der Bereich von der Klasse date bezeichnen, date(MINYEAR, 1, 1).
date.max
Den letzten Tag in der Bereich von der Klasse date bezeichnen, date(MAXYEAR, 12, 31).
date.resolution
Der kleiste Unterschied zwischen die nicht-gleichen Objekte date , timedelta(days=1).
Die Operator
date2 = date1 + timedelta
Ein Zeitraum addieren, timedelta
date2 = date1 - timedelta
Ein Zeitraum subtrahieren, timedelta
timedelta = date1 - date2
Die Subtrahierung 2 Objekte date.
date1 < date2
Der Vergleich des 2 Objekte date.
Die Methode
Method
Description
date.replace(year=self.year, month=self.month, day=self.day)
Return a date with the same value, except for the value replaced by the parameter.

For example:
d == date(2002, 12, 31), d.replace(day=26) == date(2002, 12, 26).
date.timetuple()
Return a time.struct_time such as returned by time.localtime(). The hours, minutes and seconds are 0, and the DST flag is -1.

d.timetuple() is equivalent to time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1)), where yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1 is the day number within the current year starting with 1 for January 1st.
date.toordinal()
Return the proleptic Gregorian ordinal of the date, where January 1 of year 1 has ordinal 1.

For any date object d, date.fromordinal(d.toordinal()) == d.
date.weekday()
Return the day of the week as an integer, where Monday is 0 and Sunday is 6.

For example, date(2002, 12, 4).weekday() == 2, a Wednesday. See also isoweekday().
date.isoweekday()
Return the day of the week as an integer (According to ISO standard), where Monday is 1 and Sunday is 7.

For example, date(2002, 12, 4).isoweekday() == 3, a Wednesday. See also weekday(), isocalendar().
date.isocalendar()
Return a 3-tuple, (ISO year, ISO week number, ISO weekday).
date.isoformat()
Return a string representing the date in ISO 8601 format, ‘YYYY-MM-DD’.

For example, date(2002, 12, 4).isoformat() == '2002-12-04'.
date.__str__()
For a date d, str(d) is equivalent to d.isoformat().
date.ctime()
Return a string representing the date, for example date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'.

d.ctime() is equivalent to time.ctime(time.mktime(d.timetuple())). The native C ctime() function conforms to the C standard when it run on flatform.
date.strftime(format)
Return a string representing the date, In the format given by the parameter. Format codes referring to hours, minutes or seconds will see 0 values.

See more strftime() and strptime() function of time module.
date.__format__(format)
Same as date.strftime().