Home >Backend Development >Python Tutorial >Python date and time
Python programs can handle dates and times in many ways. Converting date formats is a common routine chore. Python has a time and calendar module that can help.
What is Tick?
Time interval is a floating point decimal in seconds.
Each timestamp is expressed as how much time has passed since midnight (epoch) on January 1, 1970.
The popular time module that comes with Python has many functions to convert common date formats. For example, the function time.time() uses ticks to return the current operating system time recorded starting from 12:00am, January 1, 1970 (epoch), as shown in the following example:
#!/usr/bin /python
import time; # This is required to include time module.
The above example output result:
Number of ticks since 12:00am, January 1, 1970: 7186862.73399
Tick unit is most suitable for date calculations. But dates before 1970 cannot be expressed in this way. Dates that are too far away will not work, UNIX and Windows only support a date in 2038.
What is a time tuple?
Many Python functions use one element to assemble 9 groups of numbers. Processing time:
serial number
field
value
0 4-digit year 2008
1 month 1 to 12
2 days 1 to 31
3 hours 0 to 23
4 minutes
5 seconds 0 to 61 (60 or 61 is a leap second)
6 Day of the week 0 to 6 (0 is Monday)
7 one year Day 1 to 366 (Julian calendar)
8 Daylight Saving Time -1, 0, 1, -1 is the flag to determine whether it is daylight saving time
Above That is, the struct_time tuple. This structure has the following attributes:
serial number
attribute
value
0 tm_year 2008
1 tm_mon 1 to 12
2 tm _mday 1 to 31
3 tm_hour 0 to 23
4 tm_min 0 to 59
5 tm_sec 0 to 61 (60 or 61 is a leap second)
6 tm_wday 0 to 6 (0 is Monday)
7 tm_yday 1 to 366 (Julian calendar)
8 tm_isdst -1, 0 , 1, -1 is the flag that determines whether it is daylight saving time
Get the current time
Convert from the time deletion method that returns a floating point number to a time tuple, as long as the floating point number is passed to a function such as localtime. S#!/USR/Bin/Python
import Time;
The output result of the above example:
Local current time : time.struct_time(tm_year=2013, tm_mon=7,
tm_mday=17, tm_hour=21, tm_min=26, tm_sec= 3, tm_wday =2, tm_yday=198, tm_isdst=0)
Get formatted time
You can choose various formats according to your needs, but the simplest function to get a readable time pattern is asctime( : ", localtime
The above example output result:
Local current time : Tue Jan 13 10:17:09 2009
Get a calendar for a certain month
Calendar The module has a wide range of methods for handling annual and monthly calendars, such as printing a monthly calendar for a certain month:
#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal;
The output result of the above example:
Here is the calendar:
January 2008
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Time module
Time module contains the following built-in Functions, both for time processing and for converting time formats:
Serial number
Function and description
1 time.altzone
Returns the offset seconds of the daylight saving time area west of Greenwich. Negative values are returned if the area is east of Greenwich (such as Western Europe, including the UK). Available only in regions where daylight saving time is enabled.
2 time.asctime([tupletime])
Accepts a time tuple and returns a readable form of "Tue Dec 11 18:07:14 2008" (Tuesday, December 11, 2008 18:07:14) A 24-character string.
3 time.clock( )
Returns the current CPU time in seconds calculated as a floating point number. It is used to measure the time consumption of different programs and is more useful than time.time().
6 time.localtime([secs])
7 time.mktime(tupletime)
8 time.sleep(secs)
9 time.strftime(fmt[,tupletime])
10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
11 time.time( )
12 time.tzset()
Time module contains the following 2 very important attributes:
attribute time.timezone is the distance between the local time zone (without daylight saving time) and Greenwich Offset seconds (>0, Americas; <=0 most of Europe, Asia, Africa).
2 time.tzname
The attribute time.tzname contains a pair of strings that vary depending on the situation, which are the local time zone name with and without daylight saving time.Calendar module
Returns year in a multi-line string format Annual calendar, 3 months per row, interval distance is c. Daily width interval is w characters. The length of each line is 21* W+18+2* C. l is the number of lines per week.
2 calendar.firstweekday( )
Returns the setting of the current weekly starting day. By default, 0 is returned when the caendar module is first loaded, which is Monday.
3 calendar.isleap(year)
4 calendar.leapdays(y1,y2)
5 calendar.month(year,month,w=2,l=1)
6 calendar.monthcalendar(year,month)
7 calendar.monthrange(year,month)
8 calendar.prcal(year,w=2,l=1,c=6)
9 calendar.prmonth(year,month,w =2,l=1)
10 calendar.setfirstweekday(weekday)
Set the starting day code of each week. 0 (Monday) to 6 (Sunday).
11 calendar.timegm(tupletime)
is the opposite of time.gmtime: it accepts a time tuple form and returns the time at that moment (the number of floating point seconds elapsed after the 1970 epoch).
12 calendar.weekday(year,month,day)
Returns the date code of the given date. 0 (Monday) to 6 (Sunday). Months range from 1 (January) to 12 (December).