This is a fork of datetime_truncate that fixes some critical bugs in the syntactic sugar versions of the truncate functions.
This module truncates a datetime object to the level of precision that you specify, making everything higher than that zero (or one for day and month).
It is based on PostgreSQL's DATE_TRUNC.
Documentation available on Read the Docs.
pip install git+git://github.com/pb-/datetime_trunc.git
>>> from datetime_trunc import truncate >>> truncate(datetime(2012, 2, 4, 12, 24, 50, 234), 'second') datetime(2012, 2, 4, 12, 24, 50) >>> truncate(datetime(2012, 2, 4, 12, 24, 50), 'minute') datetime(2012, 2, 4, 12, 24) >>> truncate(datetime(2012, 2, 4, 12, 24), 'hour') datetime(2012, 2, 4, 12) >>> truncate(datetime(2012, 2, 4, 12, 24), 'day') datetime(2012, 2, 4) >>> truncate(datetime(2012, 2, 4, 12, 24), 'week') datetime(2012, 1, 30) >>> truncate(datetime(2012, 2, 4, 12, 24), 'month') datetime(2012, 2, 1) >>> truncate(datetime(2012, 2, 4, 12, 24), 'quarter') datetime(2012, 1, 1) >>> truncate(datetime(2012, 8, 18, 12, 25), 'half_year') datetime(2012, 7, 1) >>> truncate(datetime(2012, 8, 18, 12, 25), 'year') datetime(2012, 1, 1)
There are also sugar functions available on the form:
- truncate_second
- truncate_minute
- truncate_hour
- truncate_day
- truncate_week
- truncate_month
- truncate_quarter
- truncate_half_year
- truncate_year