Skip to content

Instantly share code, notes, and snippets.

@dhermes
Created April 2, 2026 18:19
Show Gist options
  • Select an option

  • Save dhermes/769e5d0508ef73f991f6e858e65a9b96 to your computer and use it in GitHub Desktop.

Select an option

Save dhermes/769e5d0508ef73f991f6e858e65a9b96 to your computer and use it in GitHub Desktop.
[2026-04-02] `datetime.date.today()` local timezone

Showing how datetime.date.today() in Python is sensitive to local timezone:

$ uv run how_today.py; echo '=='; date
TZ=
today() -> 2026-04-02
impl -> 2026-04-02
full    -> 2026-04-02T13:17:19
==
Thu Apr  2 13:17:19 CDT 2026
$
$
$ TZ=America/New_York uv run how_today.py 
TZ=America/New_York
today() -> 2026-04-02
impl -> 2026-04-02
full    -> 2026-04-02T14:17:25
$
$
$ TZ=Etc/UTC uv run how_today.py 
TZ=Etc/UTC
today() -> 2026-04-02
impl -> 2026-04-02
full    -> 2026-04-02T18:17:38
$
$
$ TZ=Asia/Bangkok uv run how_today.py 
TZ=Asia/Bangkok
today() -> 2026-04-03
impl -> 2026-04-03
full    -> 2026-04-03T01:18:27
# Copyright (c) 2026 - Present. Workwhile, Inc. All rights reserved.
# WorkWhile Confidential - Restricted
import datetime
import os
import time
def main() -> None:
tz = os.environ.get("TZ", "")
print(f"TZ={tz}") # noqa: T201
print(f"today() -> {datetime.date.today()}") # noqa: T201
# FROM standard libary: lib/python3.14/_pydatetime.py
t = time.time()
y, m, d, hh, mm, ss, weekday, jday, dst = time.localtime(t) # noqa: RUF059
print(f"impl -> {y:04}-{m:02}-{d:02}") # noqa: T201
print(f"full -> {y:04}-{m:02}-{d:02}T{hh:02}:{mm:02}:{ss:02}") # noqa: T201
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment