datetime string format python code example

Example 1: python datetime string

import datetime

today = datetime.datetime.now()
date_time = today.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)

Example 2: python time format

The program below converts a datetime object containing current date and time to different string formats.

Code:
  
from datetime import datetime

now = datetime.now() # current date and time

year = now.strftime("%Y")
print("year:", year)

month = now.strftime("%m")
print("month:", month)

day = now.strftime("%d")
print("day:", day)

time = now.strftime("%H:%M:%S")
print("time:", time)

date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("date and time:",date_time)	

Output after run the code:
year: 2020
month: 03
day: 31
time: 04:59:31
date and time: 03/31/2020, 04:59:31
      
Here, year, day, time and date_time are strings, whereas now is a datetime object.

Example 3: format time python

| Directive | Meaning                                                        | Example                 | 
|-----------|------------------------------------------------------------------------------------------|
|%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-padded 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-padded decimal number.                         | 01, 02, ..., 12         | 
|%-m        | Month as a decimal number.                                     | 1, 2, ..., 12           | 
|%y         | Year without century as a zero-padded 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-padded 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-padded 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-padded decimal number.                        | 00, 01, ..., 59         | 
|%-M        | Minute as a decimal number.                                    | 0, 1, ..., 59           | 
|%S         | Second as a zero-padded decimal number.                        | 00, 01, ..., 59         | 
|%-S        | Second as a decimal number.                                    | 0, 1, ..., 59           | 
|%f         | Microsecond as a decimal number, zero-padded 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-padded 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). | 00, 01, ..., 53         | 
|%W         | Week number of the year (Monday as the first day of the week). | 00, 01, ..., 53         | 
|%c         | Locale’s appropriate date and time representation.             | Mon Sep 30 07:06:05 2013|
|%x         | Locale’s appropriate date representation.                      | 09/30/13                | 
|%X         | Locale’s appropriate time representation.                      | 07:06:05                | 
|%%         | A literal '%' character.                                       | %                       |

Example 4: python date 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-padded 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-padded decimal number. (01, 02, ..., 12)
%-m - Month as a decimal number. (1, 2, ..., 12)
%y - Year without century as a zero-padded 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-padded 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-padded 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-padded decimal number. (00, 01, ..., 59)
%-M - Minute as a decimal number. (0, 1, ..., 59)
%S - Second as a zero-padded decimal number. (00, 01, ..., 59)
%-S - Second as a decimal number. (0, 1, ..., 59)
%f - Microsecond as a decimal number, zero-padded 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-padded 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)
%c - Locale’s appropriate date and time representation. (Mon Sep 30 07:06:05 2013)
%x - Locale’s appropriate date representation. (09/30/13)
%X - Locale’s appropriate time representation. (07:06:05)
%% - A literal '%' character. (%)

Example 5: python datetime from string

from datetime import datetime

datetime_object = datetime.strptime('Jun 1 2005  1:33PM', '%b %d %Y %I:%M%p')

Example 6: time format conversion in python

import datetime

date_time_str = '2018-06-29 08:15:27.243860'
date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f')

print('Date:', date_time_obj.date())
print('Time:', date_time_obj.time())
print('Date-time:', date_time_obj)