Date and Time

Last update on February 28 2020 12:12:15 (UTC/GMT +8 hours)

enter image description here

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 quizarrow-up-right

Python: Tips of the Day

Python: Chaining Of Comparison Operators

Example:

Output:

Example:

Output:

Source : https://www.w3resource.com/python/python-date-and-time.phparrow-up-right

Last updated