I. time tuple (time.struct_time)
Time tuple is an important type in python. Through time tuple, we can get information such as month, day, hour, minute, second, day of week, day of the year, etc.
|Indexes||attribute||Attribute implication||Attribute value|
|5||tm_sec||second||0-61, 60, 61 are leap seconds|
|6||tm_wday||What day is it||0-6, 0 is Monday|
|7||tm_yday||Day of the year||1 to 366366 leap years|
|8||tm_isdst||Summer marking||1-daylight saving time, 0-non daylight saving time-1-uncertain, possibly because of manual creation|
import time # <class 'time.struct_time'> localtime = time.localtime() # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=3, tm_hour=9, tm_min=8, tm_sec=21, tm_wday=0, tm_yday=307, tm_isdst=0) print(type(localtime)) print(localtime) for attr in localtime: print(attr)
2. Time format
Time format is a very common function, whether it is from string to struct_time, date, datetime, or from struct_time, date, datetime to string.
Formatting mainly involves two functions: str f time: str represents string, f is format, time is time, that is, time is formatted as string str p time: str represents string, p is parse, time is time, that is, string resolution to time
time and datetime have these two functions, which will be introduced later. Let's take a look at the meaning of formatting.
|%y||Two digit year representation, 00-99|
|%Y||Four digit year representation, 0000-9999|
|%H||24 hour hours, 0-23|
|%I||12 hour hours, 01-12|
|%a||Local simplified week name|
|%A||Local full week name|
|%b||Local simplified month name|
|%B||Local full month name|
|%c||Local date and time representations|
|%j||Day number, 001-366|
|%U||Week, 00-53, Sunday is the beginning of the week|
|%W||Week, 00-53, Monday is the beginning of the week|
|%w||Day of week, 0-6, Sunday is the beginning of the week|
|%Z||Name of the current time zone|
|%%||%Matches because it is treated as an escape character|
Time module mainly deals with the format and parsing of struct_time.
On the same day, there are localization time, get timestamp, program sleep and other functions.
Note that unlike datetime.time, datetime.time is the time part of the date time in the general sense, mainly the time, minute and second.
import time # Greenwich astronomical time tuple print(time.gmtime()) print(time.gmtime(1577851199)) # Local time tuple print(time.localtime()) print(time.localtime(1577851199)) # Format time # time.asctime([tupletime]) print(time.asctime()) # time.ctime([secs]) print(time.ctime()) # Format to 2020-01-01 11:59:59 print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # Convert format string to timestamp a = "2020-01-01 11:59:59" str2TT = time.strptime(a, "%Y-%m-%d %H:%M:%S") # Tuple to timestamp ts = time.mktime(str2TT) print(ts) # time stamp print(time.time()) # Dormant seconds time.sleep(1)
The datetime module mainly uses: datetime.date: date (2025-01-01) datetime.time: time (12:00:00) datetime.datetime: period (2025-01-01 12:00:00)
import datetime import time today = datetime.date.today() print(today) print(type(today)) # Day of the week, isoweekday Sunday is the first day, weekday Monday is the first day print(today.isoweekday()) print(today.weekday()) # time tuples print(today.timetuple()) # The next few days print(today.toordinal()) datetime.date.fromordinal(today.toordinal()) print(datetime.date(2020, 1, 1)) datetime.date.fromtimestamp(time.time()) print(datetime.time(12, 59, 59, 999)) # Current local date print(datetime.datetime.now()) # Current utc date print(datetime.datetime.utcnow()) print(datetime.datetime(2020, 1, 31, 12, 59, 59, 0)) # String to date print(datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M')) # Date format print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M'))
The most common ones are:
# String get date datetime.datetime.strptime('2020-1-1 12:01', '%Y-%m-%d %H:%M') # Date format datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
timedelta is also under the datetime module, which is mainly used for date calculation.
It is very useful when you need to use the time interval. For example, you need a date like last month, previous day, last week, which can be easily obtained by using datetime and timedelta.
import datetime import time today = datetime.date.today() # Last day of last month lastMonthLastDay = datetime.date(today.year, today.month, 1) - datetime.timedelta(1) print(lastMonthLastDay) # First day of last month lastMonthFirstDay = datetime.date(lastMonthLastDay.year, lastMonthLastDay.month, 1) print(lastMonthFirstDay) # A week ago print(today - datetime.timedelta(7)) # This Monday thisMonday = today - datetime.timedelta(today.isoweekday()-1) print(thisMonday) # This Sunday lastMonday = thisMonday - datetime.timedelta(7) print(lastMonday) # Last Sunday lastSunday = today - datetime.timedelta(days=today.isoweekday()) print(lastSunday) # Last Monday lastMonday = lastSunday - datetime.timedelta(days=6) print(lastMonday) # 8 hours later print(datetime.datetime.now() + datetime.timedelta(hours=8)) start = datetime.datetime.now() time.sleep(1) end = datetime.datetime.now() diff = end - start # <class 'datetime.timedelta'> print(type(diff)) print(diff)
import calendar # Leap year or not print(calendar.isleap(2020))
Calendar is a calendar