Time, Date, Timestamp in Python: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 61: Line 61:


==Format==
==Format==
The common timestamp elements are '%Y-%m-%d %H:%M:%S'. <font color=darkkhaki>For more details on date format, see ?</font>


=<SPAN ID='dateutil'></SPAN><tt>dateutil</tt> Module=
=<SPAN ID='dateutil'></SPAN><tt>dateutil</tt> Module=

Revision as of 01:32, 9 October 2023

Internal

Overview

Time, date and timestamps are handled with the time and datetime modules, available in the Standard Library.

Additionally, the dateutil module provides useful extensions.

time Module

Sleep

from time import sleep
sleep(1)

datetime Module

https://docs.python.org/3/library/datetime.html#module-datetime
https://geekflare.com/calculate-time-difference-in-python/

datetime Overview

The datetime module provides classes for manipulating dates and times. https://docs.python.org/3/library/datetime.html#module-datetime

The datetime package documentation seems to recommend the dateutil for time zone support and parsing.

Time Interval with timedelta

from datetime import datetime
dt1 = datetime.datetime(2022,3,27,13,27,45,46000) 
dt2 = datetime.datetime(2022,6,30,14,28) 
tdelta = dt2 - dt1 
print(tdelta) 
print(type(tdelta))

To get the total number of seconds in timedelta, use total_seconds():

from datetime import datetime
t0 = datetime.now()
...
t1 = datetime.now()
print((t1 - t0).total_seconds())

now Time

from datetime import datetime

now = datetime.now()

current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)

#
# To display YYYY-mm-dd:
#
print(f'{now.strftime("%Y-%m-%d")}')
#
# equivalent
#
print(str(datetime.date.today()))

Format

The common timestamp elements are '%Y-%m-%d %H:%M:%S'. For more details on date format, see ?

dateutil Module

https://pypi.org/project/python-dateutil/

Time, Date and Timestamp Parsing

The datetime package documentation seems to recommend the dateutil for time zone support and parsing.

import dateutil.parser as du

d = du.parse('10/01/2023')
assert d.year == 2023
assert d.month == 10
assert d.day == 1

TO PROCESS custom_date_parser = lambda x: datetime.strptime(x, "%Y-%d-%m %H:%M:%S")