How to add Milliseconds to Datetime in Python

avatar
Borislav Hadzhiev

Last updated: Apr 8, 2024
3 min

banner

# Add milliseconds to datetime in Python

Use the timedelta() class from the datetime module to add milliseconds to datetime.

The timedelta class can be passed a milliseconds argument and adds the specified number of milliseconds to the datetime object.

main.py
from datetime import datetime, timedelta d = '2023-11-24 09:30:00.000123' # ๐Ÿ‘‡๏ธ Convert a string to a datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # ๐Ÿ‘‰๏ธ 2023-11-24 09:30:00.000123 result = dt + timedelta(milliseconds=300) print(result) # ๐Ÿ‘‰๏ธ 2023-11-24 09:30:00.300123

add milliseconds to datetime

The code for this article is available on GitHub
If you only have a time component, e.g. 09:30:13.000123 scroll down to the last code snippet.

Make sure to import the datetime and timedelta classes from the datetime module.

The example creates a datetime object from a datetime string and adds milliseconds to it.

main.py
from datetime import datetime, timedelta d = '2023-11-24 09:30:00.000123' # ๐Ÿ‘‡๏ธ Convert a string to a datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # ๐Ÿ‘‰๏ธ 2023-11-24 09:30:00.000123 result = dt + timedelta(milliseconds=300) print(result) # ๐Ÿ‘‰๏ธ 2023-11-24 09:30:00.300123

The datetime.strptime() method returns a datetime object that corresponds to the provided date string, parsed according to the format.

If you have a date string that is formatted in a different way, use this table of the docs to look up the format codes you should pass as the second argument to the strptime() method.

# Using the datetime class to create a datetime object

The following example uses the datetime class to create a datetime object and the timedelta class to add milliseconds to it.

main.py
from datetime import datetime, timedelta dt = datetime(2023, 9, 24, 9, 30, 35) print(dt) # ๐Ÿ‘‰๏ธ 2023-09-24 09:30:35 result = dt + timedelta(milliseconds=400) print(result) # ๐Ÿ‘‰๏ธ 2023-09-24 09:30:35.400000

using datetime class to create datetime object

The code for this article is available on GitHub

We passed values for the year, month, day, hour, minute and second arguments.

# Adding milliseconds to the current time

If you need to add milliseconds to the current time, use the datetime.today() method to get a datetime object that stores the current time.

main.py
from datetime import datetime, timedelta now = datetime.today() print(now) # ๐Ÿ‘‰๏ธ 2023-07-22 10:38:19.223431 result = now + timedelta(milliseconds=500) print(result) # ๐Ÿ‘‰๏ธ 2023-07-22 10:38:19.723431

adding milliseconds to current time

The code for this article is available on GitHub

The datetime.today() method returns the current local datetime.

We need to use a datetime object because it automatically rolls over the seconds, minutes, hours, days, months and years if necessary.

This wouldn't be possible if we only had the time component. For example, 11:59:59.778231 PM + 5000 milliseconds would raise an exception.

# Using the datetime.combine method to add milliseconds to a time

If you only have the time component, use the datetime.combine method to combine the time with the current (or some other) date and get a datetime object.

main.py
from datetime import datetime, date, timedelta, time t = time(6, 25, 30, 123) print(t) # ๐Ÿ‘‰๏ธ 06:25:30.000123 result = datetime.combine(date.today(), t) + timedelta(milliseconds=400) print(result) # ๐Ÿ‘‰๏ธ 2023-07-22 06:25:30.400123 only_t = result.time() print(only_t) # ๐Ÿ‘‰๏ธ 06:25:30.400123
The code for this article is available on GitHub

The datetime.combine() method takes a date and time as arguments and returns a new datetime object by combining them.

Once we get a datetime object, we can use the timedelta class to add milliseconds to it.

# Extracting the time component after adding milliseconds to a datetime

Use the time() method on the datetime object if you only need to extract the time after the operation.

main.py
from datetime import datetime, date, timedelta, time t = time(6, 25, 30, 123) print(t) # ๐Ÿ‘‰๏ธ 06:25:30.000123 result = datetime.combine(date.today(), t) + timedelta(milliseconds=400) print(result) # ๐Ÿ‘‰๏ธ 2023-07-22 06:25:30.400123 # โœ… Only get the updated time only_t = result.time() print(only_t) # ๐Ÿ‘‰๏ธ 06:25:30.400123

extracting the time component after adding milliseconds to datetime

The code for this article is available on GitHub

The datetime.time() method returns a time object with the same hour, minute, second and millisecond.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev