timezonefinder
python package for finding the timezone of any point on earth (coordinates) offline
What it is and what it does
timezonefinder is a Python library that determines which timezone contains any point on Earth given its WGS84 coordinates (latitude and longitude). It works entirely offline by querying preprocessed polygon boundary data, making it suitable for applications that cannot rely on network calls or external APIs. The library emphasizes accuracy at timezone borders without geometric simplification, combining polygon data with H3-based spatial indexing for fast lookups.
The package supports modern Python versions (3.11–3.14) and offers two usage patterns: a simple global function for one-off queries, or a reusable instance for batch operations. It includes the full original timezone dataset with all timezone names for complete localization support, though a reduced dataset option is available for smaller memory footprint. Optional acceleration is available via Numba or a clang-backed point-in-polygon routine.
Use it for:
- Batch geocoding pipelines that need to assign timezones to millions of coordinates without external API calls.
- Mobile or embedded applications requiring offline timezone resolution for user location data.
- Time-series data processing where you need to convert timestamps to local time based on coordinate history.
- Web services that must resolve timezones for map-based user interactions without latency.
- Data validation and enrichment workflows where timezone accuracy near borders is critical.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Looks up the timezone for any WGS84 coordinate (latitude/longitude) offline using preprocessed polygon data and H3-based spatial indexing.
Yes, if you need offline timezone lookup from coordinates. The package is actively maintained, has no known vulnerabilities, and ranks in the top 5000 PyPI packages by downloads. Medium install friction from 4 runtime dependencies is typical for geospatial work. Verify that ODbL data licensing aligns with your use case before deployment.
Install
timezonefinder on PyPI
pip
pip install timezonefinderuv
uv add timezonefinderpoetry
poetry add timezonefinderInstalling timezonefinder
Before you install
Medium install friction due to 4 runtime dependencies (numpy, h3, cffi, flatbuffers) and compiled wheels, but actively maintained with a recent release (32 days old) and active repository status.
License in practice
MIT license on code; data is separately licensed under ODbL. Both are permissive, but ODbL data licensing should be verified for your use case.
Quickstart
pip install timezonefinder
from timezonefinder import timezone_at
tz = timezone_at(lng=13.358, lat=52.5061) # returns 'Europe/Paris'
Requires Python 3.11 or later; numpy, h3, cffi, and flatbuffers must be installed (typically automatic via pip).
Verify before relying
- Actual memory footprint and lookup performance compared to alternatives under typical workloads.
- Whether the maintainer search mentioned in the description affects long-term maintenance stability.
- Behavior and accuracy at timezone boundaries relative to claimed 'maximum accuracy' goal.
Package facts
| License | The MIT License (MIT) Copyright (c) 2016 Jannik Michelfeit Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (<4,>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — numpy, h3, cffi, flatbuffers |
| Maintenance | actively maintained — 32 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,413,680/month — #1,915 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: timezonefinder-8.2.5-cp311-abi3-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; timezonefinder-8.2.5-cp311-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl; timezonefinder-8.2.5-cp311-abi3-musllinux_1_1_x86_64.whl
Keywords: timezone, coordinates, latitude, longitude, location, offline, polygon
Tags
More Localization packages
Measures the displayed width of Unicode strings…
permissive · top 1,000 on PyPI
pycountryProvides programmatic access to ISO standard…
copyleft · top 1,000 on PyPI
num2wordsConverts numbers to their word representations…
copyleft · top 5,000 on PyPI
polibpolib reads, writes, and manipulates gettext…
permissive · top 5,000 on PyPI
pyunormalizeProvides Unicode normalization (NFC, NFD, NFKC,…
permissive · top 5,000 on PyPI
hijridateConverts dates between the Hijri (Islamic) and…
permissive · top 5,000 on PyPI
tzfpyConverts geographic coordinates…
permissive · top 5,000 on PyPI
tzwhereLooks up the IANA timezone name for a given…
permissive · top 15,000 on PyPI
pytzdataProvides access to the Olson timezone database…
permissive · top 5,000 on PyPI
reverse_geocoderReverse Geocoder converts latitude/longitude…
copyleft · top 15,000 on PyPI
reverse-geocodeReverse Geocode converts latitude/longitude…
copyleft · top 15,000 on PyPI
convertbngConverts decimal WGS84 longitude/latitude…
unclear · top 15,000 on PyPI
haversineCalculates great-circle distances between…
permissive · top 5,000 on PyPI
pyzipcodeProvides local lookup of US ZIP code…
permissive · top 15,000 on PyPI
tzlocalReturns the IANA timezone name and tzinfo…
permissive · top 1,000 on PyPI
pgeocodepgeocode queries postal codes to retrieve GPS…
permissive · top 5,000 on PyPI