Open In App

Python strftime() function

Last Updated : 01 Aug, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Share
Report
News Follow

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.

DirectiveMeaningOutput Format
%aAbbreviated weekday name.Sun, Mon,….
%AFull weekday name.Sunday, Monday,…..
%wWeekday as a decimal number.0, 1,….., 6
%dDay of the month as a zero added decimal.01, 02,…., 31
%-dDay of the month as a decimal number.1, 2,…., 30
%bAbbreviated month name.Jan, Feb,…., Dec
%BFull month name.January, February,….
%mMonth as a zero added decimal number.01, 02,…., 12
%-mMonth as a decimal number.1, 2,….., 12
%yYear without century as a zero added decimal number.00, 01,…, 99
%-yYear without century as a decimal number.0, 1,…, 99
%YYear with century as a decimal number.2013, 2019 etc.
%HHour (24-hour clock) as a zero added decimal number.00, 01,….., 23
%-HHour (24-hour clock) as a decimal number.0, 1,…., 23
%IHour (12-hour clock) as a zero added decimal number.01, 02,…, 12
%-IHour (12-hour clock) as a decimal number.1, 2,…,12
%pLocale’s AM or PM.AM, PM
%MMinute as a zero added decimal number.00, 01,…., 59
%-MMinute as a decimal number.0, 1,…, 59
%SSecond as a zero added decimal number.00, 01,…, 59
%-SSecond as a decimal number.0, 1,…., 59
%fMicrosecond as a decimal number, zero added on the left.000000 – 999999
%zUTC offset in the form +HHMM or -HHMM. 
%ZTime zone name. 
%jDay of the year as a zero added decimal number.001, 002,….., 366
%-jDay of the year as a decimal number.1, 2,…., 366
%UWeek 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
%WWeek 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 the datetime 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 a datetime 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 a datetime object.

strftime: Formats a datetime 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 to strftime() in the datetime 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.



Next Article
Article Tags :
Practice Tags :

Similar Reads

three90RightbarBannerImg