dotnet-timezone — скилл для GitHub Copilot: установка
Скилл даёт C#-подсказки по часовым поясам в .NET: конвертация UTC, DST, ID Windows и IANA. Пригодится для API, планировщиков и геолокаций.
npx skills add github/awesome-copilot --skill dotnet-timezoneЧто делает dotnet-timezone
Скилл разбирает задачи с TimeZoneInfo, DateTimeOffset, NodaTime, UTC-конвертацией и переходами на летнее время. Он помогает определить часовой пояс города, адреса, региона или страны, вернуть Windows и IANA ID и подготовить код на C#.
Внутри есть ссылки на references/timezone-index.md с сопоставлениями ID и references/code-patterns.md с шаблонами для конвертации, API, ASP.NET Core, планировщиков и неоднозначных DST-времён. Для кроссплатформенной работы предлагается TimeZoneConverter, а для строгой арифметики и повторяющихся расписаний с DST — NodaTime.
Ставьте его, если агенту нужно разбирать часовые пояса в .NET и выдавать готовые фрагменты C#. Для простых задач без часовых поясов он лишний.
Какие задачи решает
- определить Windows и IANA ID для города
- перевести UTC во время нужного региона
- разобрать переходы на летнее время
- подобрать библиотеку для кроссплатформенного .NET-кода
- спроектировать хранение времени в API и базе
Примеры запросов агенту
- Определи часовой пояс для адреса и дай Windows ID, IANA ID и готовый код C#.
- Покажи кроссплатформенную конвертацию UTC через `TimeZoneConverter`.
- Проверь повторяющееся расписание на неоднозначные и пропущенные времена DST.
Как установить dotnet-timezone
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill dotnet-timezone2GitHub CLI
gh skill install github/awesome-copilot dotnet-timezone3Вручную: положить файлы
.github/skills/dotnet-timezone/SKILL.md1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill dotnet-timezone -a claude-code2Вручную: положить файлы
~/.claude/skills/dotnet-timezone/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dotnet-timezone/
Вручную: положить файлы
.agents/skills/dotnet-timezone/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/dotnet-timezone/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
Командой платформы
gemini skills install https://github.com/github/awesome-copilot --path skills/dotnet-timezoneВручную: положить файлы
.devin/skills/dotnet-timezone/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора554
Весь набор →Похожие
Вопросы о dotnet-timezone
Как установить dotnet-timezone в GitHub Copilot?
Выполните npx skills add github/awesome-copilot --skill dotnet-timezone или gh skill install github/awesome-copilot dotnet-timezone. Файл скилла находится в .github/skills/dotnet-timezone/SKILL.md.
Что делает dotnet-timezone?
Он подсказывает, как работать с часовыми поясами в C# и .NET: искать ID, конвертировать UTC, учитывать DST и выбирать подходящий шаблон кода.
Какие ID часовых поясов возвращает скилл?
Для локаций он готовит Windows ID и IANA ID. Это помогает учитывать различия между Windows, Linux, контейнерами, NodaTime и TimeZoneConverter.
Исходный текст
SKILL.md · MIT
---
name: dotnet-timezone
description: '.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.'
---
# .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:
```text
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:
```csharp
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
© github · MIT · github/awesome-copilot