Date and Time
Last update on February 28 2020 12:12:15 (UTC/GMT +8 hours)
The datetime module supplies classes for manipulating dates and times in both simple and complex ways.
Basic datetime objects usage:
The datetime module contains three primary types of objects - date, time, and datetime.
Date:
Output:
Time:
Output:
Date Time:
Output:
Date Time:
Output:
Iterate over dates:
Print from a start date to some end date.
Output:
Computing time differences:
The timedelta module is used to compute differences between times:
Output:
Specifying time is optional when creating a new datetime object
Output:
delta is of type timedelta:
Output:
To get n day's after and n day's before date we could use:
n day's after date:
Output:
n day's before date:
Output:
Converting timestamp to date time:
The datetime module can convert a POSIX timestamp to a ITC datetime object.
The Epoch is January 1st, 1970 midnight.
Output:
Simple date arithmetic:
Output:
Subtracting months from a date:
Output:
Using the dateutils module:
Output:
Switching between time zones:
To switch between time zones, we need datetime objects that are timezone-aware.
Output:
Fuzzy datetime parsing (extracting datetime out of a text):
Output:
Get an ISO 8601 timestamp:
Without timezone, with microseconds:
Output:
With timezone, with microseconds:
Output:
With timezone, without microseconds:
Output:
Parsing a string with a short time zone name into a timr zone aware datetime object:
Output:
Parsing an arbitrary ISO 8601 timestamp with minimal libraries:
Python has only limited support for parsing ISO 8601 timestamps and for strptime you need to know exactly what format it is in. The stringification of a datetime is an ISO 8601 timestamp, with space as a separator and 6 digit fraction:
Output:
but if the fraction is 0, no fractional part is output
Output:
Parsing a string into a timezone aware datetime object:
Python 3.2+ has support for %z format when parsing a string into a datetime object.
UTC offset in the form +HHMM or -HHMM (empty string if the object is naive).
Output:
Fixed Offset Time Zones
Output:
Zones with daylight savings time using third party library:
Use the tz.gettz() method to get a time zone object, which can then be passed directly to the datetime constructor:
Output:
List of the Date format codes:
Directive | Meaning | Example | Notes |
%a | Weekday as locale’s abbreviated name. | Sun, Mon, …, Sat (en_US); So, Mo, …, Sa (de_DE) | (1) |
%A | Weekday as locale’s full name. | unday, Monday, …, Saturday (en_US); Sonntag, Montag, …, Samstag (de_DE) | (1) |
%w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 | |
%d | Day of the month as a zero-padded decimal number. | 01, 02, …, 31 | (9) |
%b | Month as locale’s abbreviated name. | Jan, Feb, …, Dec (en_US); Jan, Feb, …, Dez (de_DE) | (1) |
%B | Month as locale’s full name. | January, February, …, December (en_US); Januar, Februar, …, Dezember (de_DE) | (1) |
%m | Month as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
%y | Year without century as a zero-padded decimal number. | 00, 01, …, 99 | (9) |
%Y | Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 | (2) |
%H | Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 | (9) |
%I | Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 | (9) |
%p | Locale’s equivalent of either AM or PM. | AM, PM (en_US); am, pm (de_DE) | (1), (3) |
%M | Minute as a zero-padded decimal number. | 00, 01, …, 59 | (9) |
%S | Second as a zero-padded decimal number. | 00, 01, …, 59 | (4), (9) |
%f | Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 | (5) |
%z | UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive). | (empty), +0000, -0400, +1030, +063415, -030712.345216 | (6) |
%Z | Time zone name (empty string if the object is naive). | (empty), UTC, EST, CST | |
%j | Day of the year as a zero-padded decimal number. | 001, 002, …, 366 | (9) |
%U | Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
%W | Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. | 00, 01, …, 53 | (7), (9) |
%c | Locale’s appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en_US); Di 16 Aug 21:30:00 1988 (de_DE) | (1) |
%x | Locale’s appropriate date representation. | 08/16/88 (None); 08/16/1988 (en_US); 16.08.1988 (de_DE) | (1) |
%X | Locale’s appropriate time representation. | 21:30:00 (en_US); 21:30:00 (de_DE) | (1) |
%% | A literal '%' character. | % |
Test your Python skills with w3resource's quiz
Python: Tips of the Day
Python: Chaining Of Comparison Operators
Example:
Output:
Example:
Output:
Source : https://www.w3resource.com/python/python-date-and-time.php
Last updated