Last modified: Feb 08, 2025 By Alexander Williams

Convert Python String to Datetime: A Beginner's Guide

Working with dates and times is a common task in programming. In Python, the datetime module is essential for handling date and time data. Often, dates are stored as strings, and converting them to datetime objects is crucial for manipulation.

Why Convert Strings to Datetime?

Strings are human-readable but not ideal for calculations or comparisons. By converting strings to datetime objects, you can perform operations like date arithmetic, sorting, and formatting. This is especially useful in data analysis and web development.

Using strptime() to Convert Strings

The strptime() method is used to convert a string to a datetime object. It requires two arguments: the string and the format of the date. The format must match the string's structure.


from datetime import datetime

# Example string
date_string = "2023-10-25 14:30:00"

# Convert to datetime
date_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")

print(date_object)
    

2023-10-25 14:30:00
    

In this example, the format "%Y-%m-%d %H:%M:%S" matches the structure of date_string. The format codes are essential for accurate conversion.

Common Datetime Format Codes

Here are some commonly used format codes:

  • %Y: Year with century (e.g., 2023)
  • %m: Month as a zero-padded number (e.g., 01 for January)
  • %d: Day of the month (e.g., 25)
  • %H: Hour (24-hour clock)
  • %M: Minute
  • %S: Second

For more details on string formatting, check out our guide on Python String Interpolation.

Handling Different Date Formats

Dates can come in various formats. For example, some dates use slashes instead of hyphens. You must adjust the format string accordingly.


# Different date format
date_string = "10/25/2023 02:30 PM"

# Convert to datetime
date_object = datetime.strptime(date_string, "%m/%d/%Y %I:%M %p")

print(date_object)
    

2023-10-25 14:30:00
    

Here, %I is used for the 12-hour clock, and %p indicates AM or PM.

Error Handling in Conversion

If the format doesn't match the string, Python raises a ValueError. To handle this, use a try-except block.


try:
    date_object = datetime.strptime("25-10-2023", "%Y-%m-%d")
except ValueError as e:
    print(f"Error: {e}")
    

Error: time data '25-10-2023' does not match format '%Y-%m-%d'
    

For more on handling exceptions, see our article on Python Exception Message String Formatting.

Conclusion

Converting strings to datetime objects is a fundamental skill in Python. It enables efficient date manipulation and ensures data consistency. By mastering strptime() and format codes, you can handle various date formats with ease.

For more Python tips, explore our guides on Multiline Strings and String to Int Conversion.