User Tools

Site Tools


manipulating_dates_in_python

Tasks

Dummy

date in isoformat

from datetime import date
today = date.today().isoformat()
print(type(today))
print(today)

<class 'str'>
2023-09-18

It also works on datetime objects and will give the time in ISO 8601 format.

from datetime import datetime
now = datetime.today().isoformat()
print(type(now))
print(now)

<class 'str'>
2023-09-18T13:55:17.214513

Ref:- https://stackoverflow.com/questions/32490629/getting-todays-date-in-yyyy-mm-dd-in-python

extract date from datetime

$ ipython
Python 3.10.6 | packaged by conda-forge | (main, Oct 24 2022, 16:02:16) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:
from datetime import datetime
s = '24 October 2022'
dtt = datetime.strptime(s, "%d %B %Y")
print(dtt)
2022-10-24 00:00:00

In [2]:
type(dtt)
Out[2]:
datetime.datetime

In [3]:
dt = datetime.strptime(s, "%d %B %Y").date()
print(dt)
2022-10-24

In [4]:
type(dt)
Out[4]:
datetime.date

get today's day, month and year

% ipython3
Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
IPython 7.20.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 
import datetime
today = datetime.date.today()

In [2]: 
print(today)
2021-08-14

In [3]: 
type(today)
Out[3]: 
datetime.date

In [4]: 
[today.year, today.month, today.day]
Out[4]: 
[2021, 8, 14]

iterate over a range of dates

To iterate on all days including weekends

for dt in pd.date_range('20160226', '20160303'):
  print(dt.strftime('%Y%m%d'))

20160226
20160227
20160228
20160229
20160301
20160302
20160303

To iterate only on weekdays

for dt in pd.date_range('20160226', '20160303'):
  if (dt.weekday() < 5):
    print(dt.strftime('%Y%m%d'))

20160226
20160229
20160301
20160302
20160303

To iterate in reverse chronological order

for dt in pd.date_range('20160226', '20160303')[::-1]:
  if (dt.weekday() < 5):
    print(dt.strftime('%Y%m%d'))

20160303
20160302
20160301
20160229
20160226

To experiment with just one date element

>>> a = pd.date_range('20160226', '20160303')
>>> a[0].strftime('%Y%m%d')
'20160226'

To create a pandas.tslib.Timestamp variable

>>> from datetime import datetime
>>> for dt in pd.date_range('20160929', '20160930')[::-1]:
...     dt == pd.Timestamp(datetime(2016, 9, 29))
...
False
True

>>> type(pd.Timestamp(datetime(2016, 9, 29)))
<class 'pandas.tslib.Timestamp'>

>>> for dt in pd.date_range('20160929', '20160930')[::-1]:
...     type(dt)
...
<class 'pandas.tslib.Timestamp'>
<class 'pandas.tslib.Timestamp'>

tags | convert output from pandas data_range function to YYYYMMDD, date_range reverse order

Ref:-

$ ipython
Python 3.11.4 | packaged by Anaconda, Inc. | (main, Jul  5 2023, 13:47:18) [MSC v.1916 64 bit (AMD64)]
IPython 8.12.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:
import calendar
for m in calendar.month_name:
    print(m)


January
February
March
April
May
June
July
August
September
October
November
December
manipulating_dates_in_python.txt · Last modified: 2024/02/06 05:22 by raju