Today’s post is about finding today’s date and time using Python. This script queries local system for today’s date and time in local time zone.
We will be using python built-in module called datetime for this purpose. This module has a function called now() which will return a date time object. Let see how it looks like.
import datetime as dt dt.datetime.now()
If you execute above lines of code from Python REPL, you will see that it returns a date time object as shown below.
As you can see in the output it returned datetime in object format. It is very convenient to use this object if you are going to consume this further in your scripts. However, at times we want to print the time that humans can easily understand. For example, you want to print date time in MM-DD-YYYY format. To do that we can use strftime() method which is available on the datetime object. Let us see how to use it.
import datetime as dt date = dt.datetime.now() print("Today's date time : {0}".format(date.strftime("%d-%m-%Y %H-%M-%S"))) print("Today's date time : {0}".format(date.strftime("%D %T")))
Directive | Meaning | Notes |
---|---|---|
%a |
Locale’s abbreviated weekday name. | |
%A |
Locale’s full weekday name. | |
%b |
Locale’s abbreviated month name. | |
%B |
Locale’s full month name. | |
%c |
Locale’s appropriate date and time representation. | |
%d |
Day of the month as a decimal number [01,31]. | |
%H |
Hour (24-hour clock) as a decimal number [00,23]. | |
%I |
Hour (12-hour clock) as a decimal number [01,12]. | |
%j |
Day of the year as a decimal number [001,366]. | |
%m |
Month as a decimal number [01,12]. | |
%M |
Minute as a decimal number [00,59]. | |
%p |
Locale’s equivalent of either AM or PM. | (1) |
%S |
Second as a decimal number [00,61]. | (2) |
%U |
Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0. | (3) |
%w |
Weekday as a decimal number [0(Sunday),6]. | |
%W |
Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0. | (3) |
%x |
Locale’s appropriate date representation. | |
%X |
Locale’s appropriate time representation. | |
%y |
Year without century as a decimal number [00,99]. | |
%Y |
Year with century as a decimal number. | |
%Z |
Time zone name (no characters if no time zone exists). | |
%% |
A literal '%' character. |
Notes:
- When used with the
strptime()
function, the%p
directive only affects the output hour field if the%I
directive is used to parse the hour. - The range really is
0
to61
; this accounts for leap seconds and the (very rare) double leap seconds. - When used with the
strptime()
function,%U
and%W
are only used in calculations when the day of the week and the year are specified.
Hope this article is helpful.