タイムゾーン変換とは?
タイムゾーン変換ツールは、ある日時を一つのタイムゾーンから別のタイムゾーンに変換し、世界のどこでも対応する時刻を即座に確認できるようにするものです。世界は24の主要タイムゾーンに分かれており、それぞれが協定世界時(UTC)からの固定オフセットとして定義されています。UTC 14:00の場合、ニューヨーク(UTC-5)では09:00、東京(UTC+9)では23:00になります。タイムゾーン間を正確に変換するには、変換元・変換先のUTCオフセットと、いずれかで夏時間(DST)が適用されているかを把握する必要があります。
IANAタイムゾーンデータベース(Olsonデータベースまたはtzデータベースとも呼ばれる)は、オペレーティングシステム、プログラミング言語、Webブラウザが使用するタイムゾーン定義の標準ソースです。各タイムゾーンにはAmerica/New_YorkやAsia/Tokyoのようなリージョン/都市形式の正式識別子が割り当てられています。ESTやPSTのような略称とは異なり、IANA識別子は各地域のUTCオフセットの変更履歴とDST移行の全履歴を記録しており、過去・未来の日付にわたって正確に時刻を変換できる唯一の信頼できる方法です。
このタイムゾーン変換ツールは、ブラウザのJavaScriptエンジンにIntl APIを通じて組み込まれたIANAタイムゾーンデータを使用しています。変換元のタイムゾーンを選択して日時を入力すると、夏時間の調整を含む変換先タイムゾーンの対応時刻が即座に計算されます。すべての処理がブラウザ内で完結するため、サーバーへの通信は発生せず、データがデバイスの外に出ることもありません。
このタイムゾーン変換ツールを使う理由
タイムゾーンの計算を手動で行うのは、特に夏時間が絡む場合にミスが発生しやすい作業です。1月にUTC-5だった都市が7月にはUTC-4になることがあり、移行日は国によって異なります。米国と欧州では異なる日曜日に時計を切り替えるため、2週間の期間中はニューヨークとロンドンのオフセット差が年間の他の期間と異なります。このツールは、オペレーティングシステムが使用するのと同じIANAデータベースを用いて、こうした移行をすべて自動的に処理します。
タイムゾーン変換ツールの使用例
IANAタイムゾーン参照テーブル
IANAタイムゾーンデータベースには400以上のタイムゾーン識別子が定義されており、政治的変更、新しいDSTルール、歴史的修正を反映するため年に数回更新されます。以下の表に最もよく使用されるタイムゾーンとその標準UTCオフセットおよびDSTの動作を示します。表示されているオフセットは標準時のものであり、DST列はその地域で夏時間が有効な期間の調整後オフセットを示しています。
| IANA識別子 | 一般名称 | UTCオフセット | DST |
|---|---|---|---|
| UTC | Coordinated Universal Time | +00:00 | No |
| America/New_York | Eastern Time (US) | -05:00 | Yes (EDT -04:00) |
| America/Chicago | Central Time (US) | -06:00 | Yes (CDT -05:00) |
| America/Denver | Mountain Time (US) | -07:00 | Yes (MDT -06:00) |
| America/Los_Angeles | Pacific Time (US) | -08:00 | Yes (PDT -07:00) |
| Europe/London | Greenwich Mean Time | +00:00 | Yes (BST +01:00) |
| Europe/Berlin | Central European Time | +01:00 | Yes (CEST +02:00) |
| Europe/Moscow | Moscow Time | +03:00 | No |
| Asia/Dubai | Gulf Standard Time | +04:00 | No |
| Asia/Kolkata | India Standard Time | +05:30 | No |
| Asia/Shanghai | China Standard Time | +08:00 | No |
| Asia/Tokyo | Japan Standard Time | +09:00 | No |
| Australia/Sydney | Australian Eastern Time | +10:00 | Yes (AEDT +11:00) |
| Pacific/Auckland | New Zealand Standard Time | +12:00 | Yes (NZDT +13:00) |
コード例
主要なプログラミング言語はすべてIANAデータベースを通じたタイムゾーン変換機能を提供しています。以下の例では、JavaScriptのIntl APIを使用したUTCタイムスタンプの変換、Pythonのzoneinfoモジュール、Goのtimeパッケージ、シェルスクリプト用のGNU dateコマンドの使い方を示します。
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')
// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"
const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"
// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
const fmt = new Intl.DateTimeFormat('en-US', {
timeZone: tz,
timeZoneName: 'longOffset',
})
const parts = fmt.formatToParts(date)
return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"from datetime import datetime
from zoneinfo import ZoneInfo
# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))
# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny) # → 2026-03-15 05:00:00-04:00 (EDT in March)
# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo) # → 2026-03-15 18:00:00+09:00
# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z')) # → 2026-03-15 10:00 CETpackage main
import (
"fmt"
"time"
)
func main() {
utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)
// Load timezone by IANA name
ny, _ := time.LoadLocation("America/New_York")
tokyo, _ := time.LoadLocation("Asia/Tokyo")
fmt.Println(utc.In(ny)) // → 2026-03-15 05:00:00 -0400 EDT
fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST
// Get the UTC offset in seconds
_, offset := utc.In(ny).Zone()
fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}# Display current time in a specific timezone TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z' # → 2026-03-15 18:00:00 JST # Convert a UTC timestamp to another timezone TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z' # → 2026-03-15 02:00 PDT # List all available IANA timezone names timedatectl list-timezones | head -20