Time Zone Zone is a Windows desktop app for quickly viewing and comparing time zones from a lightweight standalone executable.
It's the Time Zone...Zone
- Open the latest GitHub release: https://github.com/devingoble/TimeZoneZone/releases/latest
- Download the ZIP for your Windows architecture:
TimeZoneZone-<version>-win-x64.zipfor most Intel/AMD PCsTimeZoneZone-<version>-win-arm64.zipfor ARM64 devices
- Extract the ZIP to a folder on your computer.
- Run
TimeZoneZone.exefrom the extracted folder.
If Windows shows a security warning, use "More info" -> "Run anyway".
When the app opens, you see a list of pinned time zones. Each card shows the current time in that zone and a label.
- Click the
+button in the upper-right corner. - Enter a custom label if you want one (for example, "Home" or "Client HQ").
- Choose the time zone from the dropdown.
- Click the save icon to add it to your list.
- Click the pencil icon on the card you want to change.
- Update the label or choose a different time zone.
- Click the save icon to keep the changes.
- Click the pencil icon on the card.
- Click the trash icon that appears.
- Confirm the card is removed from the list.
- Drag a card up or down to reorder your pinned clocks.
- The app keeps the order you choose so your most important locations stay at the top.
Prerequisites:
- Windows 10 or later
- .NET 10 SDK
- Visual Studio 2022 with the Windows desktop development workload, or another Windows environment that can build WinUI 3 apps
From a PowerShell window in the repo root:
# restore packages
dotnet restore .\TimeZoneZone.slnx
# build the solution
dotnet build .\TimeZoneZone.slnx -p:Platform=x64
# run the app in Debug mode
dotnet run --project .\TimeZoneZone.csproj -p:Platform=x64The supported release configuration is a self-contained, single-file JIT publish. Use the project publish profiles for each platform:
# x64
dotnet publish .\TimeZoneZone.csproj -c Release -p:Platform=x64 -p:PublishProfile=win-x64
# ARM64
dotnet publish .\TimeZoneZone.csproj -c Release -p:Platform=ARM64 -p:PublishProfile=win-arm64Output examples:
bin\Release\net10.0-windows10.0.19041.0\win-x64\publish\TimeZoneZone.exe
bin\Release\net10.0-windows10.0.19041.0\win-arm64\publish\TimeZoneZone.exe
The GitHub Actions release workflow uses the corresponding CI profiles to produce zipped release artifacts for win-x64 and win-arm64.
The current publish model is intentionally conservative and avoids unsupported trimming for WinUI 3:
PublishTrimmed=falsePublishSingleFile=trueEnableCompressionInSingleFile=trueWindowsPackageType=NoneWindowsAppSDKSelfContained=trueSuppressWindowsAppSDKAutoInitialization=true
This is the supported path because trimming WinUI/WinRT code can break XAML event wiring (for example, button clicks and selection-change handlers) even when the app still launches. The project keeps the trimmer roots in place for future experiments, but the shipped artifact remains a reliable standalone JIT executable.
- Use the ZIP that matches your hardware architecture (
x64orARM64). - If the app doesn't start, redownload the matching artifact instead of using a different architecture build.
- The published release does not require a local .NET install or separate Windows App SDK installation.
- No MSIX install step is required for the shipped standalone builds.
This repository intentionally keeps the release workflow and publish profile setup in source control and does not publish AOT artifacts by default. The single-file JIT publish is the current source of truth for distribution.