Skip to main content

django-chrono is a helper class for date and time operations in Django projects.

Project description

django-chrono

django-chrono is a helper class for date and time operations in Django projects.

Usage Examples

1. String ↔ Datetime

from django_chrono import ChronoUtils

dt = ChronoUtils.str_to_datetime("2025-06-07 16:30:00")
dt_str = ChronoUtils.datetime_to_str(dt, fmt="%d.%m.%Y %H:%M")
# Result: '07.06.2025 16:30'

2. Date ↔ Datetime

import datetime
from django_chrono import ChronoUtils

d = datetime.date(2025, 6, 7)
dt = ChronoUtils.date_to_datetime(d)  # 2025-06-07 00:00:00
d2 = ChronoUtils.datetime_to_date(dt) # 2025-06-07

3. Timestamps

dt = ChronoUtils.timestamp_to_datetime(1759991100)
ts = ChronoUtils.datetime_to_timestamp(dt)

4. Time Zone Conversion

import pytz
from django.utils import timezone

dt = ChronoUtils.str_to_datetime("2025-06-07 12:00:00", tz=pytz.timezone('Europe/Sofia'))
dt_utc = ChronoUtils.to_utc(dt)            # Convert to UTC
dt_local = ChronoUtils.from_utc(dt_utc, pytz.timezone('Europe/Sofia'))  # Convert back

5. ISO Format

dt = ChronoUtils.parse_iso("2025-06-07T14:15:00")
iso_str = ChronoUtils.to_iso(dt)

6. Day/Week Boundaries

today = datetime.date.today()
start_day, end_day = ChronoUtils.get_day_bounds(today)
start_week, end_week = ChronoUtils.get_week_bounds(today, start_of_week=0)  # Monday

7. Add/Subtract Weeks, Months, Years

from django_chrono import ChronoUtils

dt = datetime.date(2025, 6, 7)
dt_plus_2w = ChronoUtils.add_weeks(dt, 2)   # +2 weeks
dt_minus_1m = ChronoUtils.sub_months(dt, 1) # -1 month
dt_plus_3y = ChronoUtils.add_years(dt, 3)   # +3 years

8. Calculate Difference

d1 = datetime.date(2024, 6, 7)
d2 = datetime.date(2025, 6, 7)
w_diff = ChronoUtils.diff_in_weeks(d2, d1)    # 52
m_diff = ChronoUtils.diff_in_months(d2, d1)   # 12
y_diff = ChronoUtils.diff_in_years(d2, d1)    # 1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_chrono-0.1.2.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_chrono-0.1.2-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file django_chrono-0.1.2.tar.gz.

File metadata

  • Download URL: django_chrono-0.1.2.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for django_chrono-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2c2ba3d4baad57907a4326d70ee8b8eee408509891a85c829eec15a7d4be9b03
MD5 5a3bd1fad50bc8cd66c841335a4555b8
BLAKE2b-256 f9c18f9a13cc28f4d8e3a765f6e9729565ae205628518530d9d7ad1f1e2685df

See more details on using hashes here.

File details

Details for the file django_chrono-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: django_chrono-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for django_chrono-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b16346cbc8787b4b6b1f854d071ef37aa896f7bf0a5fd39e58fb556bfce93fc
MD5 c1471d79dc091c7d44da9ea3beadcae4
BLAKE2b-256 0d14f069afe2d4c538ffe8ef2efd7327c7616825c36ab5cc954c88b0cc62478b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page