Python datetime
In this article, you will learn to manipulate date and time in Python with the help of examples.
Python has a module named datetime to work with dates and times. Let's create a few simple programs related to date and time before we dig deeper.
Example 1: Get Current Date and Time
When you run the program, the output will be something like:
Here, we have imported datetime module using import datetime
statement.
One of the classes defined in the datetime
module is datetime
class. We then used now()
method to create a datetime
object containing the current local date and time.
Example 2: Get Current Date
When you run the program, the output will be something like:
In this program, we have used today()
method defined in the date
class to get a date
object containing the current local date.
What's inside datetime?
We can use dir() function to get a list containing all attributes of a module.
When you run the program, the output will be:
Commonly used classes in the datetime module are:
date Class
time Class
datetime Class
timedelta Class
datetime.date Class
You can instantiate date
objects from the date
class. A date object represents a date (year, month and day).
Example 3: Date object to represent a date
When you run the program, the output will be:
If you are wondering, date()
in the above example is a constructor of the date
class. The constructor takes three arguments: year, month and day.
The variable a is a date
object.
We can only import date
class from the datetime
module. Here's how:
Example 4: Get current date
You can create a date
object containing the current date by using a classmethod named today()
. Here's how:
Example 5: Get date from a timestamp
We can also create date
objects from a timestamp. A Unix timestamp is the number of seconds between a particular date and January 1, 1970 at UTC. You can convert a timestamp to date using fromtimestamp()
method.
When you run the program, the output will be:
Example 6: Print today's year, month and day
We can get year, month, day, day of the week etc. from the date object easily. Here's how:
datetime.time
A time object instantiated from the time
class represents the local time.
Example 7: Time object to represent time
When you run the program, the output will be:
Example 8: Print hour, minute, second and microsecond
Once you create a time
object, you can easily print its attributes such as hour, minute etc.
When you run the example, the output will be:
Notice that we haven't passed microsecond argument. Hence, its default value 0
is printed.
datetime.datetime
The datetime
module has a class named dateclass
that can contain information from both date and time objects.
Example 9: Python datetime object
When you run the program, the output will be:
The first three arguments year, month and day in the datetime()
constructor are mandatory.
Example 10: Print year, month, hour, minute and timestamp
When you run the program, the output will be:
datetime.timedelta
A timedelta
object represents the difference between two dates or times.
Example 11: Difference between two dates and times
When you run the program, the output will be:
Notice, both t3 and t6 are of <class 'datetime.timedelta'>
type.
Example 12: Difference between two timedelta objects
When you run the program, the output will be:
Here, we have created two timedelta
objects t1 and t2, and their difference is printed on the screen.
Example 13: Printing negative timedelta object
When you run the program, the output will be:
Example 14: Time duration in seconds
You can get the total number of seconds in a timedelta object using total_seconds()
method.
When you run the program, the output will be:
You can also find sum of two dates and times using +
operator. Also, you can multiply and divide a timedelta
object by integers and floats.
Python format datetime
The way date and time is represented may be different in different places, organizations etc. It's more common to use mm/dd/yyyy
in the US, whereas dd/mm/yyyy
is more common in the UK.
Python has strftime()
and strptime()
methods to handle this.
Python strftime() - datetime object to string
The strftime()
method is defined under classes date
, datetime
and time
. The method creates a formatted string from a given date
, datetime
or time
object.
Example 15: Format date using strftime()
When you run the program, the output will be something like:
Here, %Y
, %m
, %d
, %H
etc. are format codes. The strftime()
method takes one or more format codes and returns a formatted string based on it.
In the above program, t, s1 and s2 are strings.
%Y
- year [0001,..., 2018, 2019,..., 9999]%m
- month [01, 02, ..., 11, 12]%d
- day [01, 02, ..., 30, 31]%H
- hour [00, 01, ..., 22, 23%M
- minute [00, 01, ..., 58, 59]%S
- second [00, 01, ..., 58, 59]
To learn more about strftime()
and format codes, visit: Python strftime().
Python strptime() - string to datetime
The strptime()
method creates a datetime
object from a given string (representing date and time).
Example 16: strptime()
When you run the program, the output will be:
The strptime()
method takes two arguments:
a string representing date and time
format code equivalent to the first argument
By the way, %d
, %B
and %Y
format codes are used for day, month(full name) and year respectively.
Visit Python strptime() to learn more.
Handling timezone in Python
Suppose, you are working on a project and need to display date and time based on their timezone. Rather than trying to handle timezone yourself, we suggest you to use a third-party pytZ module.
When you run the program, the output will be something like:
Here, datetime_NY and datetime_London are datetime objects containing the current date and time of their respective timezone.
Last updated