WORKING WITH DATES
Python provides a rich set of date-related functions. Listing 1.7 displays the content of the script date_time2.py that displays various date-related values, such as the current date and time; the day of the week, month, and year; and the time in seconds since the epoch.
LISTING 1.7: date_time2.py
import time
import datetime
print("Time in seconds since the epoch: %s" %time.time())
print("Current date and time: " , datetime.datetime.now())
print("Or like this: " ,datetime.datetime.now().strftime("%y-%m-%d-%H-%M"))
print("Current year: ", datetime.date.today().strftime("%Y"))
print("Month of year: ", datetime.date.today().strftime("%B"))
print("Week number of the year: ", datetime.date.today().strftime("%W"))
print("Weekday of the week: ", datetime.date.today().strftime("%w"))
print("Day of year: ", datetime.date.today().strftime("%j"))
print("Day of the month : ", datetime.date.today().strftime("%d"))
print("Day of week: ", datetime.date.today().strftime("%A"))
Listing 1.8 displays the output generated by running the code in Listing 1.7.
LISTING 1.8 datetime2.out
Time in seconds since the epoch: 1375144195.66 Current date and time: 2013-07-29 17:29:55.664164 Or like this: 13-07-29-17-29 Current year: 2013 Month of year: July Week number of the year: 30 Weekday of the week: 1 Day of year: 210 Day of the month : 29 Day of week: Monday
Python allows you to perform arithmetic calculates with date-related values, as shown in the following code block:
>>> from datetime import timedelta >>> a = timedelta(days=2, hours=6) >>> b = timedelta(hours=4.5) >>> c = a + b >>> c.days 2 >>> c.seconds 37800 >>> c.seconds / 3600 10.5 >>> c.total_seconds() / 3600 58.5
Converting Strings to Dates
Listing 1.9 displays the content of string2date.py that illustrates how to convert a string to a date, and also how to calculate the difference between two dates.
LISTING 1.9: string2date.py
from datetime import datetime
text = '2014-08-13'
y = datetime.strptime(text, '%Y-%m-%d')
z = datetime.now()
diff = z - y
print('Date difference:',diff)
The output from Listing 1.9 is shown here:
Date difference: -210 days, 18:58:40.197130