
.NET Timezone
OfficialFreeEfficient timezone handling for C# applications.
Free · Opens the source repo
What .NET Timezone does
The .NET Timezone skill provides developers with clear guidance on managing timezone-related tasks in C# applications. It simplifies the complexities associated with timezone conversions, daylight saving time adjustments, and cross-platform compatibility. By leveraging this skill, developers can easily resolve timezone questions, whether they involve converting UTC to local time, looking up timezone IDs, or handling scheduling across different time zones.
This skill is particularly useful for developers working with TimeZoneInfo, DateTimeOffset, and NodaTime. It includes practical, copy-paste-ready C# code snippets that can be integrated directly into applications. The skill also offers a structured approach to identifying the type of request being made—whether it's an address lookup, timezone ID retrieval, or UTC conversion—ensuring that users can quickly find the information they need without unnecessary complexity.
For those dealing with addresses or locations, the skill extracts relevant data and provides both Windows and IANA timezone IDs, along with UTC offsets. It also includes guidance on common pitfalls, such as the risks of storing local time in databases and the nuances of daylight saving time transitions. This comprehensive approach makes it a valuable resource for both novice and experienced developers looking to implement robust timezone handling in their applications.
When to use it
Use this skill when you need to perform timezone conversions, look up timezone IDs, or manage daylight saving time in your C# applications.
When not to use it
This skill may not be suitable for applications that do not require timezone handling or for those that operate exclusively in UTC without local time considerations.
What you can build with it
Address Lookup
Resolve timezones for specific addresses or locations and get both Windows and IANA IDs.
Timezone ID Retrieval
Quickly look up timezone IDs for use in TimeZoneInfo and NodaTime.
Scheduling Across Time Zones
Manage scheduling tasks that involve multiple time zones and account for daylight saving time.
How to install .NET Timezone
View source1. Install with the skills CLI
npx skills add github/awesome-copilot/dotnet-timezone --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by github.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:
- Extract each location from the input.
- Read
references/timezone-index.mdfor common Windows and IANA mappings. - If the exact location is not listed, infer the correct IANA zone from geography, then map it to the Windows ID.
- 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, andTimeZoneConverter
Generate Code
Use references/code-patterns.md and pick the smallest pattern that fits:
- Pattern 1:
TimeZoneInfofor Windows-only code - Pattern 2:
TimeZoneConverterfor cross-platform conversion - Pattern 3:
NodaTimefor strict timezone arithmetic and DST-sensitive scheduling - Pattern 4:
DateTimeOffsetfor 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.Nowin databases; store UTC instead. - Treat
DateTimeKind.Unspecifiedas 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:
- Return the resolved timezone block for each location.
- State the recommended implementation in one sentence.
- Include a copy-paste-ready C# snippet.
For code and architecture requests:
- State the recommended approach in one sentence.
- Provide the timezone IDs if relevant.
- Include the minimal working code snippet.
- Mention the package requirement if needed.
- Add one pitfall warning if it matters.
Keep responses concise and code-first.
References
references/timezone-index.md: common Windows and IANA timezone mappingsreferences/code-patterns.md: ready-to-use .NET timezone patterns
Frequently asked questions about .NET Timezone
Similar skills
Python PyPI Package Builder
Streamline the process of creating and publishing Python packages.
Minecraft Plugin Development
Streamline your Minecraft server plugin creation.
MCP Server Builder
Easily build .NET MCP servers with the latest standards.
CommunityToolkit.Mvvm Messenger
Decoupled communication for ViewModels in .NET applications.
MVVM Toolkit DI
Streamline ViewModel integration with Dependency Injection in .NET.
MCP Apps Builder
Essential guidelines for MCP server development.
