Date & time
Create
These assume the datetime
methods have been imported. Otherwise, prefix with datetime.
.
What | How | Details |
Define date | date(year, month, day) | |
Define time | time(hour, minute, second) | |
Define datetime | datetime(year, month, day, hour, minute, second) | |
Current date | datetime.now().date() | |
Current time | datetime.now().time() | |
Current datetime | datetime.now() | |
Current datetime in UTC timezone | datetime.now(timezone.utc) | |
Combine date and time | datetime.combine(date, time) | |
Date from any valid ISO 8601 date string | date.fromisoformat(date_string) | e.g., 2023-01-30 or 20230130 |
Time from any valid ISO 8601 time string | time.fromisoformat(time_str) | e.g. 23:59:01 |
Datetime from any valid ISO 8601 datetime string | datetime.fromisoformat(datetime_str) | e.g. 2023-01-30 23:59 , 2023-01-30T23:59:01 |
Date from YYYY-MM-DD string | datetime.strptime(datetime_str, '%y-%m-%d') | |
Date from DD-MMM-YYYY string | datetime.strptime(datetime_str, '%d-%b-%y') | |
Datetime from YYYY-MM-DD HH:mm:ss | x.strptime('%y-%m-%d %H:%M:%S') | |
Datetime from string (unknown format) | pandas.to_datetime('2023 Jan 5') | |
Date from timestamp f (float) | date.fromtimestamp(f) | |
What | How | Details |
Year | x.year | |
Month | x.month | |
Day | x.day | |
Hour | x.hour | |
Minute | x.minute | |
Second | x.second | |
Microsecond | x.microsecond | |
Weekday number | x.isoweekday() | Mon=1, Sun=7 |
Weekday number (zero-based) | x.weekday() | Mon=0, Sun=6 |
Test
What | How | Details |
Same moment | x == y | Up to x.resolution precision (usually 1μs) |
Happens before y | x < y | |
Happens after y | x > y | |
Difference
What | How | Details |
Difference between dates | x - y | timedelta object |
Difference between dates, in seconds | (x - y).total_seconds() | |
Difference between dates, in whole days | (x - y).days | |
Difference between dates, in years | x.year - y.year - ((x.month, x.day) < (y.month, y.day)) | Source |
Derive
What | How | Details |
Change to first day of year | x.replace(month=1, day=1) | |
Change to first day of month | x.replace(day=1) | |
Change year to y | x.replace(year=y) | |
In UTC timezone | datetime.now(timezone.utc) | |
Shift forward by n days | x + timedelta(days=n) | |
Shift forward by n seconds | x + timedelta(seconds=n) | |
Shift forward by n days, m hours | x + timedelta(days=n, hours=m) | |
Convert
What | How | Details |
Timestamp (float) | x.timestamp() | |
Named tuple of | x.timetuple() | |
Format date as ISO 8601 | x.isoformat() | e.g., 2023-01-01 |
Format time as ISO 8601 | x.isoformat() | e.g., 23:59:00 |
Format datetime as ISO 8601 | x.isoformat() | e.g., 2023-01-01T23:59:00 |
Format readable datetime of consistent length | x.ctime() | e.g., Sun Jan 1 23:59:00 2023 |
Format datetime as YYYY-MM-DD | x.date().isoformat() | e.g., 01-Jan-2023 |
Format datetime as DD-MMM-YYYY | x.strftime('%d-%b-%Y') | e.g., 01-Jan-2023 |
Format datetime as HH:mm | x.strftime('%H:%M') | e.g., 23:59 |
Format datetime as HH:mm:ss | x.strftime('%H:%M:%S') | e.g., 23:59:00 |
Format datetime as YYYY-MM-DD HH:mm:ss | x.strftime('%y-%m-%d %H:%M:%S') | |