30分・45分オフセットのタイムゾーン
非標準オフセットを使用するタイムゾーンの包括的リファレンス:UTCからの30分および45分オフセット。ソフトウェア開発者への実践的な影響を含みます。
Edge Cases
詳細な説明
非標準タイムゾーンオフセット
ほとんどの人はタイムゾーンが1時間単位で刻まれると想定していますが、かなりの数の地域が30分や45分のUTCからのオフセットを使用しています。
30分オフセットのタイムゾーン
| IANA ID | 一般名 | UTCオフセット | DST? |
|---|---|---|---|
| Asia/Kolkata | インド標準時 | +05:30 | なし |
| Asia/Kabul | アフガニスタン時間 | +04:30 | なし |
| Asia/Tehran | イラン時間 | +03:30 | あり(+04:30) |
| Australia/Adelaide | オーストラリア中部 | +09:30 | あり(+10:30) |
| America/St_Johns | ニューファンドランド | -03:30 | あり(-02:30) |
45分オフセットのタイムゾーン
| IANA ID | 一般名 | UTCオフセット | DST? |
|---|---|---|---|
| Asia/Kathmandu | ネパール時間 | +05:45 | なし |
| Pacific/Chatham | チャタム島時間 | +12:45 | あり(+13:45) |
これらのオフセットが存在する理由
ほとんどの非標準オフセットには歴史的または政治的な理由があります:
- インド(+05:30):1906年に標準化されたコルカタとムンバイの太陽時の妥協
- ネパール(+05:45):インドとの差別化のため、カトマンズの太陽時に基づく
- ニューファンドランド(-03:30):セントジョンズの太陽時に基づく
ソフトウェアへの影響
1. 期間計算: UTCからカトマンズへの変換では、14:00 UTCは19:45 NPT(20:00ではない!)
2. Cronジョブの整列:
カトマンズの深夜にジョブを実行する必要がある場合:15 18 * * *(18:15 UTC = 00:00 NPT)
3. テストの推奨事項: テストスイートには少なくとも1つの30分オフセットタイムゾーンを含めてください。
インドだけでも14億人以上が+05:30タイムゾーンにいるため、これはエッジケースとは言えません。
ユースケース
非標準タイムゾーンオフセットは、日付/時刻計算で1時間単位のオフセットを仮定するすべてのソフトウェアに影響します。これには日割り料金を計算する課金システム、日付でデータをグループ化する分析プラットフォーム、正確なアライメントが必要なスケジューリングアプリケーション、国際的なコミュニケーションツールが含まれます。