Introduction
Python comes with quite a lot of helpful objects that can be utilized out of the field. Date objects are examples of such objects. Date sorts are tough to control from scratch, because of the complexity of dates and instances. Nonetheless, Python date objects make it extraordinarily simple to transform dates into the fascinating string codecs.
Date formatting is a typical activity that you’ll face as a programmer, and speaking dates correctly to finish customers, in case your utility exposes them, is a crucial a part of UX.
Completely different areas world wide have other ways of representing dates/instances, subsequently your objective as a programmer is to current the date values in a manner that’s readable to the customers.
For instance, you could have to signify a date worth numerically like “02-23-2023”. On the flip aspect, you could want to jot down the identical date worth in an extended textual format like “Feb 23, 2023”. In one other situation, you could wish to extract the month in string format from a numerically formated date worth.
On this article, we’ll examine various kinds of date objects together with their functionalities.
The datetime Module
Python’s datetime
module comprises strategies that can be utilized to work with date and time values. To make use of this module, we first import it through the import
assertion as follows:
import datetime
We are able to signify time values utilizing the time
class. The attributes for the time
class embrace the hour, minute, second and microsecond.
Notice: The arguments for the time
class are optionally available. Though in the event you do not specify any argument you’ll get again a time of 0, which is unlikely to be what you want more often than not.
For instance, you possibly can initialize a time object with a price of 1 hour, 10 minutes, 20 seconds and 13 microseconds utilizing:
t = datetime.time(1, 10, 20, 13)
To see the time, let’s use the print
perform:
print(t)
To extract fields, such because the hour, minute, second or microsecond – you possibly can entry every area respectively:
print('hour:', t.hour)
The minutes, seconds and microseconds for the above time will be retrieved as follows:
print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)
The values for the calendar date will be represented through the date
class. The cases may have attributes for 12 months, month, and day.
Allow us to name the at the moment()
technique to see at the moment’s date:
import datetime
at the moment = datetime.date.at the moment()
print(at the moment)
The code will return the date for at the moment, subsequently the output you see will depend upon the day you run the above script.
Now let’s name the ctime
technique to print the date in one other format:
print('ctime:', at the moment.ctime())
The ctime
technique makes use of an extended date-time format than the examples we noticed earlier than. This technique is primarily used for changing Unix-time (the variety of seconds since Jan. 1st, 1970) to a string format.
And right here is how we will show the 12 months, the month, and the day utilizing the date
class:
print('12 months:', at the moment.12 months)
print('Month:', at the moment.month)
print('Day :', at the moment.day)
This leads to:
12 months: 2022
Month: 9
Day : 15
Changing Dates to Strings with strftime()
Now that you know the way to create Date and Time objects, allow us to discover ways to format them into extra readable strings.
To realize this, we shall be utilizing the strftime()
technique. This technique helps us convert date objects into readable strings. It takes two parameters, as proven within the following syntax:
time.strftime(format, t)
The primary parameter is the format string, whereas the second parameter is the time to be formatted, which is optionally available.
This technique may also be used on a datetime
object immediately, as proven within the following instance:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))
Take a look at our hands-on, sensible information to studying Git, with best-practices, industry-accepted requirements, and included cheat sheet. Cease Googling Git instructions and really study it!
We have now used the next character strings to format the date:
%b
: Returns the primary three characters of the month identify. In our instance, it returned “Sep”.%d
: Returns day of the month, from 1 to 31. In our instance, it returned “15”.%Y
: Returns the 12 months in four-digit format. In our instance, it returned “2022”.%H
: Returns the hour. In our instance, it returned “00”.%M
: Returns the minute, from 00 to 59. In our instance, it returned “00”.%S
: Returns the second, from 00 to 59. In our instance, it returned “00”.
We didn’t cross a time, therefore the values for time are all “00”. The next instance exhibits how the time will be formatted as properly:
import datetime
x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))
The Full Character Code Checklist
Aside from the character strings given above, the strftime
technique takes a number of different directives for formatting date values:
%a
: Returns the primary three characters of the weekday, e.g. Wed.%A
: Returns the complete identify of the weekday, e.g. Wednesday.%B
: Returns the complete identify of the month, e.g. September.%w
: Returns the weekday as a quantity, from 0 to six, with Sunday being 0.%m
: Returns the month as a quantity, from 01 to 12.%p
: Returns AM/PM for time.%y
: Returns the 12 months in two-digit format, that’s, with out the century. For instance, “18” as an alternative of “2018”.%f
: Returns microsecond from 000000 to 999999.%Z
: Returns the timezone.%z
: Returns UTC offset.%j
: Returns the variety of the day within the 12 months, from 001 to 366.%W
: Returns the week variety of the 12 months, from 00 to 53, with Monday being counted as the primary day of the week.%U
: Returns the week variety of the 12 months, from 00 to 53, with Sunday counted as the primary day of every week.%c
: Returns the native date and time model.%x
: Returns the native model of date.%X
: Returns the native model of time.
Think about the next instance:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))
And right here is how one can get the month solely:
print(x.strftime('%B'))
Allow us to show the 12 months:
print(x.strftime('%Y'))
On this instance we have now used the format code %Y
. Discover that the Y
is in uppercase. Now write it in lowercase:
print(x.strftime('%y'))
As you possibly can see, with these formatting codes you possibly can signify the date-time in nearly any kind that you simply’d like.
Changing Strings to Dates with strptime
The strftime()
technique helped us convert date objects into extra readable strings. The strptime()
technique does the other, that’s, it takes strings and converts them into date objects that Python can perceive.
That is helpful while you obtain a string-formatted date, and want to convert it to a unique string-formatted date. By changing to an middleman datetime object, you achieve entry to a parsed construction that may be reformatted to another format.
Right here is the syntax for the tactic:
datetime.strptime(string, format)
The string
parameter is the worth in string format that we wish to convert into date format. The format
parameter is the directive specifying the format to be taken by the date after the conversion.
For instance, to illustrate we have to convert the string “9/15/22” right into a datetime
object.
Let’s first import the datetime
module:
from datetime import datetime
We are able to then outline the date within the type of a string:
str = '9/15/22'
Python won’t be able to know the above string as a datetime till we convert it to an precise datetime
object. We are able to efficiently achieve this by calling the strptime
technique.
Execute the next command to transform the string:
date_object = datetime.strptime(str, '%m/%d/%y')
Let’s now name the print
perform to show the string in datetime
format:
print(date_object)
As you possibly can see, the conversion was profitable!
Now you can convert this date object to another string format.
Dealing with completely different separators is as simple as utilizing them within the format string:
from datetime import datetime
str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)
Conclusion
On this article, we studied tips on how to format dates in Python. We noticed how the datetime
module in Python can be utilized for the manipulation of date and time values. The module comprises various courses that can be utilized for this function. For instance, the time
class is used to signify time values whereas the date
class is used to signify calendar date values.