Python strftime() function
The Strftime() function is used to convert date and time objects to their string representation. It takes one or more inputs of formatted code and returns the string representation in Python.
Python Strftime() Syntax
Syntax: datetime_obj.strftime(format)
Parameters:
- Format: consists of various format codes that define specific parts of the date and time.
Returns: It returns the string representation of the date or time object.
Strftime() Method in Python Example
The Python datetime library includes a method called strftime(). You can utilize a variety of the format codes it offers to build the necessary string representation. Let’s explore the Python date time string strftime() function’s example:
from datetime import datetime
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)
Output
2023-07-18 06:24:12
Time complexity: O(1)
Auxiliary Space: O(1)
Using Strftime() from Datetime Module
In this code, we are using the strftime()
method from the datetime
module to convert python date time string.
# Python program to demonstrate
# strftime() function
from datetime import datetime as dt
# Getting current date and time
now = dt.now()
print("Without formatting", now)
# Example 1
s = now.strftime("%a %m %y")
print('\nExample 1:', s)
# Example 2
s = now.strftime("%A %m %Y")
print('\nExample 2:', s)
# Example 3
s = now.strftime("%I %p %S")
print('\nExample 3:', s)
# Example 4
s = now.strftime("%j")
print('\nExample 4:', s)
Output
Without formatting 2019-12-17 18:21:39.211378
Example 1: Tue-12-19
Example 2: Tuesday-12-2019
Example 3: 6 PM 39
Example 4: 351
Time complexity: O(1)
Auxiliary Space: O(1)
Formatting Date and Time with AM/PM
In this code, we are using the strftime()
method from the datetime
module to format the date and time with AM/PM format to Python date time string.
from datetime import datetime as dt
date = dt.now()
formatted_date = date.strftime("%B %d, %Y")
print(formatted_date)
time = dt.now()
formatted_time = time.strftime("%I:%M:%S %p")
print(formatted_time)
Output
July 18, 2023
06:52:17 AM
Time complexity: O(1)
Auxiliary Space: O(1)
Combining Different Format Codes
In this code, we are using the strftime()
method from the datetime
module combining different format codes for a specific format and also custom string with multiple format codes to Python date time string.
from datetime import datetime as dt
custom = dt.now()
formatted_custom = custom.strftime("Today is %A, %B %d, %Y")
print(formatted_custom)
combined = dt.now()
formatted_combined = combined.strftime("%d/%m/%Y %H:%M:%S")
print(formatted_combined)
Output
Today is Tuesday, July 18, 2023
18/07/2023 06:50:49
Time complexity: O(1)
Auxiliary Space: O(1)
List of Format Codes
Reference table for the format codes.
Directive | Meaning | Output Format |
---|---|---|
%a | Abbreviated weekday name. | Sun, Mon,…. |
%A | Full weekday name. | Sunday, Monday,….. |
%w | Weekday as a decimal number. | 0, 1,….., 6 |
%d | Day of the month as a zero added decimal. | 01, 02,…., 31 |
%-d | Day of the month as a decimal number. | 1, 2,…., 30 |
%b | Abbreviated month name. | Jan, Feb,…., Dec |
%B | Full month name. | January, February,…. |
%m | Month as a zero added decimal number. | 01, 02,…., 12 |
%-m | Month as a decimal number. | 1, 2,….., 12 |
%y | Year without century as a zero added decimal number. | 00, 01,…, 99 |
%-y | Year without century as a decimal number. | 0, 1,…, 99 |
%Y | Year with century as a decimal number. | 2013, 2019 etc. |
%H | Hour (24-hour clock) as a zero added decimal number. | 00, 01,….., 23 |
%-H | Hour (24-hour clock) as a decimal number. | 0, 1,…., 23 |
%I | Hour (12-hour clock) as a zero added decimal number. | 01, 02,…, 12 |
%-I | Hour (12-hour clock) as a decimal number. | 1, 2,…,12 |
%p | Locale’s AM or PM. | AM, PM |
%M | Minute as a zero added decimal number. | 00, 01,…., 59 |
%-M | Minute as a decimal number. | 0, 1,…, 59 |
%S | Second as a zero added decimal number. | 00, 01,…, 59 |
%-S | Second as a decimal number. | 0, 1,…., 59 |
%f | Microsecond as a decimal number, zero added on the left. | 000000 – 999999 |
%z | UTC offset in the form +HHMM or -HHMM. | |
%Z | Time zone name. | |
%j | Day of the year as a zero added decimal number. | 001, 002,….., 366 |
%-j | Day of the year as a decimal number. | 1, 2,…., 366 |
%U | Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01,…., 53 |
%W | Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01,….., 53 |
Python strftime() function – FAQs
What is strftime()
in Python?
strftime()
is a method in Python that formats date and time objects into readable strings based on specified format codes. It is part of thedatetime
module.from datetime import datetime
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date) # Output: '2023-12-25 15:30:00'
What is strptime()
function in Python?
strptime()
is a function in Python that parses a string representing a date and time and returns adatetime
object. It requires a corresponding format string to interpret the input string.from datetime import datetime
date_str = "2023-12-25 15:30:00"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print(date_obj) # Output: 2023-12-25 15:30:00
How to use strftime
in DataFrame?
To use
strftime
in a Pandas DataFrame, you can apply it to datetime columns to convert them into formatted strings.import pandas as pd
# Create a DataFrame with a datetime column
df = pd.DataFrame({'date': pd.to_datetime(['2023-01-01', '2023-12-25', '2023-07-04'])})
# Apply strftime to format the datetime column
df['formatted_date'] = df['date'].dt.strftime("%Y-%m-%d")
print(df)
What is the difference between strptime
and strftime
in Python?
strptime
: Parses a string to create adatetime
object.
strftime
: Formats adatetime
object to create a string.from datetime import datetime
# strptime example
date_str = "2023-12-25 15:30:00"
date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
# strftime example
formatted_date = date_obj.strftime("%Y-%m-%d")
print(formatted_date) # Output: '2023-12-25'
What is dt.strftime
in Python?
dt.strftime
is a method used in Pandas to format datetime columns in a DataFrame. It is similar tostrftime()
in thedatetime
module but is used with Pandas datetime objects.import pandas as pd
# Create a DataFrame with a datetime column
df = pd.DataFrame({'date': pd.to_datetime(['2023-01-01', '2023-12-25', '2023-07-04'])})
# Apply dt.strftime to format the datetime column
df['formatted_date'] = df['date'].dt.strftime("%Y-%m-%d")
print(df)These methods are essential for handling and manipulating date and time data in Python and Pandas, providing flexibility for various formatting and parsing needs.