Last modified: Jan 10, 2023 By Alexander Williams
Python Check if String is Datetime
To check if a string is DateTime in Python, we can use:
-
dateutil.parse() method
-
datetime() method
Check if String is Datetime using parse()
parse() is a method of the dateutil module used to parse most formats to represent a date or time. Therefore we'll use parse() to check if the string is a DateTime
In the following example, we'll check if my_str is DateTime.
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "1995-12-12" # 👉️ String
# 👇 Check if my_str is DateTime
try:
parse(my_str, fuzzy=False) # 👉️ (fuzzy=False) String is DateTime
print(True)
except ValueError:
print(False)
Output:
True
Let me explain what we did:
- We've imported the parse() module
- We've defined my_str to check it
- We've used try and except to handle the parse() errors
- We've checked my_str using parse() with Set fuzzy=False
If you set fuzzy=False, parse() will check whether the string is a date, time, or both. Otherwise, If you set fuzzy=True will check if the string contains a date or time or both.
Finally, if the string is the Datetime, the program returns True. If not, it returns False.
Let's see another example of a Date:
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "1995/12/12" # 👉️ String
# 👇 Check if my_str is DateTime
try:
parse(my_str, fuzzy=False)
print(True)
except ValueError:
print(False)
Output:
Output: True
Now let's check a Date and Time string.
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "1995/12/12 12:00" # 👉️ String
# 👇 Check if my_str is DateTime
try:
parse(my_str, fuzzy=False)
print(True)
except ValueError:
print(False)
Output:
True
Another example:
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "1995-12-12 12:00am" # 👉️ String
# 👇 Check if my_str is DateTime
try:
parse(my_str, fuzzy=False)
print(True)
except ValueError:
print(False)
Output:
True
Now let's try to check a string that contains DateTime:
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "today is 1995-12-12 12:00am" # 👉️ String
# 👇 Check if my_str is DateTime
try:
parse(my_str, fuzzy=False)
print(True)
except ValueError:
print(False)
Output:
False
Oops! It is False. As I said, when you set fuzzy=False, the parser() method will check whether the string is a date, time, or both.
However, to check if the string contains DateTime, we need to set fuzzy=True.
from dateutil.parser import parse # 👉️ Import parse() module
my_str = "today is 1995-12-12 12:00am" # 👉️ String
# 👇 Check if my_str contains DateTime
try:
parse(my_str, fuzzy=True) # 👉️ (fuzzy=True) DateTime in String
print(True)
except ValueError:
print(False)
Output:
True
Check if String is Datetime using datetime()
datetime() is a module used to work with date and time. We can use the datetime() to check if a string is a specific date and time format.
The following example will check if my_str is Date with Year-Month-Day format.
from datetime import datetime # 👉️ Import datetime() module
my_str = "1995-12-12" # 👉️ String
# 👇 Check if my_str is DateTime with Year-Month-Day format
try:
datetime.strptime(my_str, '%Y-%m-%d')
print(True)
except ValueError:
print(False)
Output:
True
%Y-%m-%d: Year-Month-Day format
Let's check another format:
from datetime import datetime # 👉️ Import datetime() module
my_str = "1995/12/12" # 👉️ String
👇 Check if my_str is DateTime with Year-Month-Day format
try:
datetime.strptime(my_str, '%Y-%m-%d')
print(True)
except ValueError:
print(False)
Output:
False
Here we got False because my_str date format is Year/month/day.
The following example will check for Year-month-day Hours:Minutes format.
from datetime import datetime # 👉️ Import datetime() module
my_str = "1995-12-12 13:50" # 👉️ String
# 👇 Check if my_str is DateTime with the Y-m-d H:S format
try:
datetime.strptime(my_str, '%Y-%m-%d %H:%M')
print(True)
except ValueError:
print(False)
Output:
True
Example of (a 12-hour format):
from datetime import datetime # 👉️ Import datetime() module
my_str = "1995-12-12 01:50 AM" # 👉️ String
# 👇 Check if my_str is DateTime with the Y-m-d H:S info format
try:
datetime.strptime(my_str, '%Y-%m-%d %H:%M %p')
print(True)
except ValueError:
print(False)
Output:
True
We've used %H for (24-hour format) and %p for (am/pm).
Conclusion
To resume this article, we can say that when you want to check if a string is DateTime, use the parse() method. Otherwise, if you want to check if a string is DateTime with a specific format, use datetime() method.
You can find all Examples in this Video:
You'll also find the tutorial examples if you want to download them here Examples on Github.
Happy Codding!