Catalog
github/dotnet-timezone

github

dotnet-timezone

.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.

v1.0Latest
New~964Updated Jun 26, 2026

.NET Timezone

Resolve timezone questions for .NET and C# code with production-safe guidance and copy-paste-ready snippets.

Start With The Right Path

Identify the request type first:

  • Address or location lookup
  • Timezone ID lookup
  • UTC/local conversion
  • Cross-platform timezone compatibility
  • Scheduling or DST handling
  • API or persistence design

If the library is unclear, default to TimeZoneConverter for cross-platform work. If the scenario involves recurring schedules or strict DST rules, prefer NodaTime.

Resolve Addresses And Locations

If the user provides an address, city, region, country, or document containing place names:

  1. Extract each location from the input.
  2. Read references/timezone-index.md for common Windows and IANA mappings.
  3. If the exact location is not listed, infer the correct IANA zone from geography, then map it to the Windows ID.
  4. Return both IDs and a ready-to-use C# example.

For each resolved location, provide:

Location: <resolved place>
Windows ID: <windows id>
IANA ID: <iana id>
UTC offset: <standard offset and DST offset when relevant>
DST: <yes/no>

Then include a cross-platform snippet like:

using TimeZoneConverter;

TimeZoneInfo tz = TZConvert.GetTimeZoneInfo("Asia/Colombo");
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tz);

If multiple locations are present, include one block per location and then a combined multi-timezone snippet.

If a location is ambiguous, list the possible timezone matches and ask the user to choose the correct one.

Look Up Timezone IDs

Use references/timezone-index.md for Windows to IANA mappings.

Always provide both formats:

  • Windows ID for TimeZoneInfo.FindSystemTimeZoneById() on Windows
  • IANA ID for Linux, containers, NodaTime, and TimeZoneConverter

Generate Code

Use references/code-patterns.md and pick the smallest pattern that fits:

  • Pattern 1: TimeZoneInfo for Windows-only code
  • Pattern 2: TimeZoneConverter for cross-platform conversion
  • Pattern 3: NodaTime for strict timezone arithmetic and DST-sensitive scheduling
  • Pattern 4: DateTimeOffset for APIs and data transfer
  • Pattern 5: ASP.NET Core persistence and presentation
  • Pattern 6: recurring jobs and schedulers
  • Pattern 7: ambiguous and invalid DST timestamps

Always include package guidance when recommending third-party libraries.

Warn About Common Pitfalls

Mention the relevant warning when applicable:

  • TimeZoneInfo.FindSystemTimeZoneById() is platform-specific for timezone IDs.
  • Avoid storing DateTime.Now in databases; store UTC instead.
  • Treat DateTimeKind.Unspecified as a bug risk unless it is deliberate input.
  • DST transitions can skip or repeat local times.
  • Azure Windows and Azure Linux environments may expect different timezone ID formats.

Response Shape

For address and location requests:

  1. Return the resolved timezone block for each location.
  2. State the recommended implementation in one sentence.
  3. Include a copy-paste-ready C# snippet.

For code and architecture requests:

  1. State the recommended approach in one sentence.
  2. Provide the timezone IDs if relevant.
  3. Include the minimal working code snippet.
  4. Mention the package requirement if needed.
  5. Add one pitfall warning if it matters.

Keep responses concise and code-first.

References

  • references/timezone-index.md: common Windows and IANA timezone mappings
  • references/code-patterns.md: ready-to-use .NET timezone patterns
Files3
3 files · 9.8 KB

Select a file to preview

Overall Score

88/100

Grade

A

Excellent

Safety

92

Quality

86

Clarity

87

Completeness

82

Summary

A reference skill that guides .NET developers through timezone handling in C# applications. It provides structured decision trees for identifying request types (address lookup, timezone ID resolution, UTC conversion, etc.), references Windows and IANA timezone mappings, and includes seven production-ready code patterns for TimeZoneInfo, TimeZoneConverter, NodaTime, DateTimeOffset, ASP.NET Core, scheduling, and DST edge cases.

Detected Capabilities

reference lookupcode pattern selectiontimezone ID mappingplatform compatibility guidance

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

timezone handling C#convert UTC timezonecross-platform .NET timezoneIANA Windows timezone mappingDST scheduling .NETTimeZoneConverter setuptimezone city lookup

Use Cases

  • .NET application requires converting between Windows and IANA timezone IDs for a specific location or address
  • Developer needs to implement cross-platform timezone handling that works consistently on Windows and Linux
  • Implementing timezone-aware scheduling for recurring jobs or user-facing local time input
  • Handling daylight saving time edge cases such as ambiguous or invalid local times
  • Storing and presenting timestamps correctly in ASP.NET Core applications with multi-user timezone support
  • Building a service that manages timezones for multiple geographic regions and needs the correct timezone ID format
  • Determining whether to use TimeZoneInfo, TimeZoneConverter, or NodaTime based on application constraints

Quality Notes

  • Excellent structure with clear decision trees that guide developers to the right tool based on their use case
  • Seven focused code patterns cover the spectrum from basic TimeZoneInfo to complex DST handling
  • Reference files are well-organized with Windows-to-IANA mappings and concrete code examples that are copy-paste ready
  • Pitfall warnings section directly addresses the most common mistakes developers make with timezone handling
  • Cross-platform guidance is explicit and emphasizes the distinction between Windows IDs and IANA IDs
  • Response shape is clearly defined so agents know exactly what format to return for different request types
  • Code examples use consistent patterns and include error handling for DST ambiguity
  • Package guidance is provided for third-party libraries with version recommendations
Model: claude-haiku-4-5-20251001Analyzed: Jun 26, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use github/dotnet-timezone in your dev environment

Command Palette

Search for a command to run...