---
title: ".NET Timezone: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/skills/github-dotnet-timezone/
description: "Resolves .NET timezone work through the right library first — TimeZoneConverter for cross-platform, NodaTime for recurring schedules and strict DST arithmetic — and ships both Windows and IANA identifiers on every answer, seven copy-paste code patterns, and the pitfall list from DateTimeKind.Unspecified to DST transitions that skip or repeat local times."
---

# .NET Timezone: review, setup & limitations · Undominated.ai

> Resolves .NET timezone work through the right library first — TimeZoneConverter for cross-platform, NodaTime for recurring schedules and strict DST arithmetic — and ships both Windows and IANA identifiers on every answer, seven copy-paste code patterns, and the pitfall list from DateTimeKind.Unspecified to DST transitions that skip or repeat local times.

[← Explore all skills](/skills/)

LANGUAGES AND TOOLING / GitHub community

# .NET Timezone

Resolves .NET timezone work through the right library first — TimeZoneConverter for cross-platform, NodaTime for recurring schedules and strict DST arithmetic — and ships both Windows and IANA identifiers on every answer, seven copy-paste code patterns, and the pitfall list from DateTimeKind.Unspecified to DST transitions that skip or repeat local times.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/github/awesome-copilot/tree/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone)

SOURCE REVIEW

 Reviewed 2026-10-15
 Evidence 5 linked sources
 Publisher GitHub community
 Licence [MIT ↗](https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/LICENSE)
 Revision 7cce7cfb4b61
 [Read what was—and wasn’t—checked ↓](#review)

“.NET timezone handling guidance for C# applications. Use when working with TimeZoneInfo, DateTimeOffset, NodaTime, UTC conversion, daylight saving time, scheduling across timezones, cross-platform Windows/IANA timezone IDs, or when a .NET user needs the timezone for a city, address, region, or country and copy-paste-ready C# code.”

 [GitHub community · upstream description ↗](https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/SKILL.md) Our analysis follows below.

01 / THE REASONING

## Why this made the selection.

 - Routes every request through the right library before any code is written — TimeZoneConverter for cross-platform work, NodaTime when recurring schedules or strict DST rules are in play — instead of letting agents reach for TimeZoneInfo on the wrong platform.
- The pitfall list is the real failure set: DateTimeKind.Unspecified as a bug risk, storing DateTime.Now in databases, DST transitions that skip or repeat local times, and Windows versus IANA identifier divergence including between Azure environments.
- Ships both identifier systems on every answer — the Windows ID for TimeZoneInfo on Windows, the IANA ID for Linux, containers and NodaTime — with a reference index of common mappings and seven ready code patterns from Windows-only to ambiguous DST timestamps.

### A good fit for

 - Resolving a timezone for a city, address or region into both Windows and IANA identifiers with working C# code
- Choosing between TimeZoneInfo, TimeZoneConverter, DateTimeOffset and NodaTime for a given scenario
- Designing persistence and API boundaries that store and transfer UTC correctly
- Surface ambiguous place-to-timezone mappings for user selection before producing location-specific code.

### Weigh up before choosing

 - .NET-specific; the discipline transfers to other stacks but the APIs and libraries do not.
- The timezone index reference is a curated common-cases list, not a complete tz database; unusual zones fall back to geographic inference with a note.
- Ambiguous locations are handled by listing candidates and asking the user to choose — correct, but it means unattended runs can stop on ambiguity.

02 / THE REVIEW RECORD

## What we actually inspected.

Source review has boundaries. A clear record is more useful than a “safe” badge.

### Material inspected

 - skills/dotnet-timezone/SKILL.md
- skills/dotnet-timezone/references directory listing
- LICENSE (MIT)
- vercel-labs/skills@7407f3893ad4dceab546ac002c3ef806e4000c73:README.md
- LICENSE

### Our findings

 - The references directory is verified to contain the two documents the workflow depends on: timezone-index.md for Windows-to-IANA mappings and code-patterns.md for the seven implementation patterns.
- The response shape is bounded: a recommended approach in one sentence, the relevant identifiers, a minimal snippet, package guidance, and one pitfall warning — not an essay.
- Ambiguity is handled honestly: when a location matches multiple zones, the skill lists the candidates and asks the user to choose rather than guessing.
- Location handling requires both Windows and IANA identifiers, asks the user to resolve ambiguous matches, and separates recurring-schedule/DST patterns from API and data-transfer patterns.

### Not established by this review

 - No C# code was compiled or run against these patterns; the workflow was read, not executed.
- The timezone index was verified to exist, not audited entry by entry for correctness.
- Not executed: it was not installed or run.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

## Add a skill to your workflow.

[Upstream setup instructions ↗](https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md)

DOCUMENTED COMMAND

 npx skills add github/awesome-copilot/skills/dotnet-timezone --skill dotnet-timezone Copy command ↗

Run in your terminal to choose your AI tools, project or global scope, and installation method. This short command follows the current upstream version; the review covers the revision shown above.

 Optional: install the reviewed revision

Keeps the original source and installer version where recorded, while leaving your AI tools and installation scope for you to choose.

 npx skills add https://github.com/github/awesome-copilot/tree/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone --skill dotnet-timezone Copy reviewed-revision command ↗ - Install the complete skill directory; the mapping index and code patterns must travel with the SKILL.md.
- Bring the location, identifier or scheduling scenario; the skill answers with identifiers plus a copy-paste snippet.

### Before you start

 - Node.js/npm for the installer
- An agent that supports the Agent Skills format
- A .NET codebase or a timezone question about one

### Compatibility

Agent Skills-compatible coding agents · C#/.NET applications · Windows, Linux and container deployments where identifier formats diverge

### Reads location or identifier inputs and .NET code; writes C# snippets

 - Read the provided locations, timezone identifiers or C# code
- Write C# snippets and configuration guidance into the response or project
- No network access is required by the workflow

### Cost model

MIT-licensed instruction package; recommended third-party libraries (TimeZoneConverter, NodaTime) are free and separate.

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [Skill definition at reviewed revision ↗](https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/SKILL.md) Checked 2026-10-07 https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/SKILL.md Supports: summary, upstreamDescription, whySelected, bestFor, limitations, review, access
- [Reference directory listing at reviewed revision (timezone index and code patterns) ↗](https://github.com/github/awesome-copilot/tree/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/references) Checked 2026-10-07 https://github.com/github/awesome-copilot/tree/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/references Supports: review, whySelected
- [Upstream license (MIT) ↗](https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/LICENSE) Checked 2026-10-07 https://github.com/github/awesome-copilot/blob/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/LICENSE Supports: license
- [Skills installer source formats and selective installation ↗](https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md) Checked 2026-10-07 https://github.com/vercel-labs/skills/blob/7407f3893ad4dceab546ac002c3ef806e4000c73/README.md Supports: install
- [Pinned continuation review W19 ↗](https://raw.githubusercontent.com/github/awesome-copilot/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/SKILL.md) Checked 2026-10-15 https://raw.githubusercontent.com/github/awesome-copilot/7cce7cfb4b61196c36d7e8eb8475ae84b356b126/skills/dotnet-timezone/SKILL.md Supports: review.findings, bestFor

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Ruff Recursive Fix ↗ Enforces Python code quality with scoped Ruff runs: safe fixes first, unsafe fixes second with diff review each pass, then targeted manual remediation under explicit stop criteria.](/skills/github-ruff-recursive-fix/)[### Trail of Bits Modern C++ ↗ Pushes new C++ toward C++20, 23, and 26 idioms and a hardened libc++, and stops when the user requires an older standard or the file is C.](/skills/trailofbits-modern-cpp/)[### Turborepo ↗ Monorepo build-system discipline for Turborepo: package tasks instead of root tasks, turbo.json task registration, cache outputs and hashing inputs, environment variables as cache keys, --affected runs, CI setup, and tag-based package boundaries.](/skills/jetbrains-turborepo/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Choose a toolkit](/tools/)
- [Inspect execution hosts](/agents/)
- [Check tool access](/mcp-servers/)
- [Check project dependencies](/check-repo/)
