Guide · Agent skill
How to use the .NET Timezone Helper agent skill (dotnet-timezone)
Updated · written with AI from the project's own documentation and checked against our catalogue data
The dotnet-timezone skill is a set of guidance files that an AI coding agent reads when you ask about timezones in C# or .NET. It tells the agent how to look up Windows and IANA timezone IDs for a place, which library to recommend, and which code pattern to use. This guide explains what the skill does, how to install it, how to trigger it, and what to watch for.
Quick start
- 1Download the ZIP. Get the dotnet-timezone ZIP from the skill's page on this directory.
- 2Unzip into a skills folder. Extract the dotnet-timezone folder into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder for one project.
- 3Or upload in the Claude apps. In the Claude apps, go to Settings → Capabilities → Skills and upload the ZIP.
- 4Ask a timezone question in C#. Describe the location or timezone task and mention .NET or C# so the agent matches the skill.
- 5Check the IDs. Confirm the Windows and IANA IDs and the UTC offset against an authoritative source for important work.
- 6Add the packages. Add TimeZoneConverter for cross-platform code, and NodaTime for strict DST arithmetic, then build and test.
What is an agent skill, and what does this one do?
An agent skill is a folder of instructions and reference files that a coding agent can load when a task matches the skill's description. This one is named dotnet-timezone and its main file is SKILL.md.
When it applies, the skill makes the agent follow a set playbook: identify the kind of timezone request, look up the right Windows and IANA IDs for a location, recommend TimeZoneConverter for cross-platform work or NodaTime for strict DST arithmetic, and produce copy-paste C# snippets. It also warns about common mistakes such as storing DateTime.Now in a database instead of UTC.
- Looks up Windows and IANA timezone IDs for a city, region, or country using a reference table
- Recommends a library and states the package requirement
- Produces C# snippets built from its code patterns, including basic TimeZoneInfo, TimeZoneConverter, NodaTime, DateTimeOffset, ASP.NET Core, recurring jobs, and ambiguous DST timestamps
- Flags pitfalls such as DST gaps and repeats, and DateTimeKind.Unspecified
Install the skill from a ZIP file
Download the ZIP for dotnet-timezone from the skill's page on this directory. Then unzip it so that the dotnet-timezone folder, containing SKILL.md and the references folder, sits in one of these locations:
For a personal skill available in all your projects, use ~/.claude/skills/. For a skill that only applies to one project, put it in that project's .claude/skills/ folder.
In the Claude apps you can instead upload the ZIP under Settings → Capabilities → Skills.
- Personal: ~/.claude/skills/dotnet-timezone/
- Project only: <your-project>/.claude/skills/dotnet-timezone/
- Claude apps: Settings → Capabilities → Skills, then upload the ZIP
Trigger the skill with natural requests
You do not need a special command. Ask about timezones in C# or .NET in plain language and the agent will load the skill when your request matches its description. The description names TimeZoneInfo, DateTimeOffset, NodaTime, UTC conversion, daylight saving time, cross-platform IDs, and timezone lookups for a city, address, region, or country.
Including the words .NET or C# helps, because the skill is only for C#-specific guidance.
- What is the Windows and IANA timezone ID for Colombo?
- Convert this UTC timestamp to local time in a .NET app that runs on Linux containers.
- My scheduled job runs twice during the DST change. How should I handle it in C#?
- Which timezone is Nairobi in for a C# app that stores appointments?
Example: getting a timezone ID for a location
When you give a location, the skill's address workflow asks the agent to extract each place, look it up in the reference table, and return a block with the Windows ID, IANA ID, UTC offset, and DST status. It then includes a cross-platform snippet. If the location is ambiguous, the agent should list the possible matches and ask you to choose. If the location is not in the table, the agent may infer the zone from geography, so check the result against an authoritative source before production use.
using TimeZoneConverter;
TimeZoneInfo tz = TZConvert.GetTimeZoneInfo("Asia/Colombo");
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tz);What you need before using the generated code
The skill supplies guidance and static reference data only. The code it produces needs a .NET and C# toolchain. The cross-platform examples need the TimeZoneConverter NuGet package, and the strict DST arithmetic examples need the NodaTime NuGet package. The skill's code patterns show the PackageReference for TimeZoneConverter. Add the package to your project before building.
The skill runs no scripts and makes no network calls. It does not check live timezone rules, so the reference table and any inferred zones are not verified at run time.
- Install the .NET toolchain and add the TimeZoneConverter package for cross-platform code
- Add the NodaTime package if you need strict DST arithmetic
- Use the Windows ID only in Windows-only code; use the IANA ID for Linux, containers, NodaTime, and TimeZoneConverter
Tips for getting good results
Give the agent a specific location and the environment your app runs in. The right ID depends on whether the code runs on Windows, Linux, or in containers. Ask for both IDs when you are not sure.
Store timestamps in UTC and convert to local time only for display. The skill's pitfalls list recommends this, and it also warns that Azure Windows and Azure Linux may expect different timezone ID formats.
- State whether the app must run on Linux or containers
- Ask for both Windows and IANA IDs when unsure
- Check any inferred zone against an authoritative source before production use
- Keep DateTimeKind explicit rather than Unspecified
Safety notes: scripts and network access
The dotnet-timezone skill runs no scripts and uses no network access, according to its listing. Its files are SKILL.md, references/timezone-index.md, and references/code-patterns.md. Review the files yourself if you want to confirm this before installing, as you would with any skill.
What people use it for
- Finding the Windows and IANA timezone IDs for a city, such as Colombo, before writing a conversion
- Converting UTC timestamps to local time in an ASP.NET Core or API service
- Moving a .NET app from Windows to Linux containers without breaking timezone lookups
- Handling recurring schedules and DST transitions with NodaTime
- Reviewing existing C# timezone code for DateTime.Now storage or Unspecified kind bugs
Frequently asked questions
How do I install the dotnet-timezone skill?
Download the ZIP from the skill's page, then unzip the dotnet-timezone folder into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
Is the dotnet-timezone skill free to use?
The skill is released under the MIT licence, as listed on its page. Check the licence file in the download for the full terms.
What do I need to use the code this skill generates?
You need a .NET and C# toolchain. The cross-platform examples need the TimeZoneConverter NuGet package, and the strict DST examples need the NodaTime NuGet package.
What is the difference between a Windows timezone ID and an IANA ID?
A Windows ID, such as Sri Lanka Standard Time, is used by TimeZoneInfo.FindSystemTimeZoneById() on Windows. An IANA ID, such as Asia/Colombo, is used on Linux, in containers, and by NodaTime and TimeZoneConverter. The skill gives both formats for each location.
Does the skill check current timezone rules or run code?
No. The skill provides guidance and static reference data only. It runs no scripts, makes no network calls, and does not check live timezone rules.
Which timezones does the skill cover, and what if my city is missing?
It covers the locations listed in its reference table, which the agent uses for common Windows and IANA mappings. If a location is not listed, the agent may infer the zone from geography, so verify that result against an authoritative source before production use.
Can I use this skill for Python or JavaScript projects?
No. The guidance and snippets are C#-specific, so it is not suited to non-.NET projects.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits C# and .NET developers who need quick Windows and IANA timezone IDs, cross-platform conversion guidance, or help avoiding common DST and UTC mistakes. Pick something else if your project is not .NET, if your location is not in the mapping table and you cannot verify it, or if you need the tool to check live timezone data or run code.
Download the skill