Die Anleitung zu Python Date Time

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)

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)
Index Attribute Values
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.

Operation Example
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

Operator Die Bezeichnung
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()

View more categories: