GMT時差を読みやすいラベルに変換
GMT時差ラベル変換は、整数の分で表した符号付き時差を、読みやすい日本語の表現へ変換します。時計、現在地、タイムゾーンデータベース、夏時間の規則は参照しません。たとえば120を指定すると、GMTより2時間進んでいることを示す一定のラベルが得られます。1時間未満の端数は分として残り、負数は遅れ、ゼロはGMTとして表示されます。画面表示、帳票、アクセシビリティ向け文言、自動生成メッセージなど、数値から常に同じ説明を作りたい処理に適しています。
無料で実行
符号付きの分数を指定します
GMTとの差を、分単位の整数1つで指定してください。正数はGMTより進んだ時刻、負数はGMTより遅れた時刻、ゼロはGMTそのものを表します。たとえば120は2時間進み、-240は4時間遅れです。入力を分に統一することで意味が明確になり、ちょうど1時間ではない時差にも対応できます。指定できる範囲は-840から840分で、GMTより14時間遅れから14時間進みまでを扱います。この機能は、都市、国、略称、日時、端末設定から時差を推測しません。この区別は重要です。地域のタイムゾーンは法改正や夏時間によって変わる可能性がありますが、本機能の役割は、渡された数値をそのまま分かりやすく表現することだけです。地域の時刻規則が必要な場合は、呼び出し前に別途計算または検証し、最終的な符号付き分数を渡してください。入力が明示されるため、同じ値からは環境にかかわらず常に同じラベルが生成されます。
ラベルの組み立て方を確認します
ゼロの場合は簡潔にGMTを返します。ゼロ以外では、まず符号から進みまたは遅れを決め、絶対値を整数の時間と残りの分に分けます。時間だけで表せる値では、簡潔さを保つために時間という語を省略した形にできます。たとえば120はGMTより2時間進み、-60はGMTより1時間遅れという意味になります。分が残る場合は単位を明示し、330ならGMTより5時間30分進み、30ならGMTより30分進みと表します。返却オブジェクトには、読みやすいラベルに加えて、元の値がoffset_minutesとして含まれます。文章と数値を一緒に保持するため、人にはラベルを表示し、プログラムでは数値を使って並べ替えや比較ができます。表示文を後から解析して数値へ戻す必要はありません。ロケール設定、略称の検索、端末の隠れた設定によって、この手順や結果が変わることもありません。
タイムゾーン名と混同せずに利用します
GMTからの時差と、名前の付いたタイムゾーンは関係していますが、同じものではありません。時差が示すのはGMTから時計がどれだけ離れているかだけであり、地域を特定したり、季節による変更時期を保証したりはしません。入力元に固定時差がすでにあり、+05:30のような記号中心の表記より言葉の説明が適する場合に、この変換をご利用ください。選択欄のアクセシブルなラベル、音声による要約、監査記録、設定のプレビュー、統一されたAPI応答などに向いています。結果から利用者が現在いる地域を断定したり、夏時間の計算に使ったりしないでください。アルゴリズムはネットワーク通信を行わず、時計、地域設定、OS、タイムゾーンデータベースも読みません。そのため、ビルド、テスト、キャッシュ文書、ブラウザーのどこでも再現できます。APIによる自動処理は1回$0.002です。入力がない、小数である、数値ではない、または範囲外の場合は、推測や丸めをせず、型付きエラーを返します。
活用例
時差選択欄にラベルを付ける
保存された分数を設定画面の読みやすい選択肢へ変換し、別のラベル一覧を管理する手間を省きます。
アクセシブルな時刻情報を作る
記号の多い数値表記ではなく、スクリーンリーダーや音声出力に適した明確な時差説明を提供します。
帳票とエクスポートを統一する
設定の数値から安定したGMTラベルを作り、繰り返し出力しても常に同じ表現を保ちます。
よくある質問
都市やタイムゾーンの時差を計算しますか?
いいえ。指定された符号付き分数を整形するだけで、地域情報や夏時間規則は参照しません。
ゼロを入力すると何が返りますか?
進み、遅れ、時間、分を付けず、GMTだけを返します。
30分や15分単位の時差にも対応しますか?
はい。対応範囲内の整数分であれば、残りの分をラベルに保持できます。
小数の分は丸められますか?
いいえ。丸めると指定された時差が変わるため、小数値はエラーになります。
APIリクエストの料金はいくらですか?
APIは1回$0.002です。この純粋な変換処理はブラウザー内でも直接実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/gmt-offset-label \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"minutes":330}'const res = await fetch("https://api.kit.forhosting.com/date/gmt-offset-label", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"minutes": 330
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/gmt-offset-label",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"minutes": 330
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/gmt-offset-label", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"minutes":330}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"minutes":330}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/gmt-offset-label", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"minutes": 330
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.gmt_offset_label",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |