日時に時間を加算
日時に時間数を足すか引くと、結果がUTCで分かります。2024年3月1日10:00(UTC)に5時間を足すと、同じ日の15:00(UTC)です。マイナスや小数の時間も使え、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日時
- 2024-03-01T10:00:00Z
- 時間
- 5
- 結果
- 2024-03-01T15:00:00Z
- 年
- 2,024
- 月
- 3
- 日
- 1
本ツールは明示的なISO-8601日時(Z付きの時刻または数値オフセット、あるいはUTC深夜0時とみなす日付のみ)と、正・負・小数・ゼロを含む有限の時間オフセットを受け付けます。基準をグレゴリオ暦の純粋な算術でUTCエポック秒に変換し、round(hours × 3600)の整数秒を加え、年-月-日 T 時-分-秒 Z の正規化UTC結果を再構成します。存在しない暦日や不正な文字列は次の月へ巻き込むのではなく、明確な検証エラーで失敗します。
システム時計なしでUTCの時間加算が動く仕組み
まず、すべてのクライアントが同じ年・月・日と任意の時刻欄に合意できるよう、国際的なISO形式で書かれた明示的な基準日時から始めます。暦日のみの場合は協定世界時の深夜0時として扱います。時刻がある場合は、任意の小数秒(整数秒に切り捨て)と、UTCを示す末尾のZ、または絶対時刻へ変換する際に差し引く符号付きの時分オフセットのいずれかを受け付けます。
グレゴリオのうるう規則の下でその市民日が存在すること——2月29日は年が4で割り切れ、かつ世紀年は400でも割り切れる場合に限り合法——および時・分・秒が通常の範囲にあることを検証します。
Howard Hinnantのdays-from-civilアルゴリズムで市民の三つ組を日通し番号に変換し、八万四千六百秒を掛け、その日の地方時刻を足し、オフセット分×六十を引いてUTCエポック秒を得ます。round(hours × 3600)として変換した時間オフセットを加えます。
civil-from-daysで市民日を再構成し、日残秒から時・分・秒を取り出し、四-二-二 T 二-二-二 Z の文字列に整形します。時間から秒への変換後は決定的な整数算術のみで、乱数種・ホストのタイムゾーン表・夏時間DB・ネットワークは使わないため、教材デモと本番フィクスチャは常に一致します。
日時に時間を加算する計算機が実務で使われる場面
運用チームは、完全なカレンダーライブラリを作らずに契約上の時間窓を足して、サポートチケット作成時刻を初回応答期限に変換します。データエンジニアは、ISOテキストとして保存された取り込みタイムスタンプからN時間後に発火するパイプライン向けに、遅延イベント列を具体化します。
プロダクトマネージャは、バックエンドが送るのと同じ数値で試用期間・キャッシュTTLプレビュー・セッション期限の文案を試作します。時計なしの暦日加算、週末を除く営業日スケジュール、二時点のカウントダウン分解、時間と分の単位換算が必要になった場合は、本ページを過負荷にせず別の検索意図・ランディングとして扱ってください。
下層の算術が似ていても、解決するクエリは異なります。
活用例
SLAと応答期限
契約上の応答窓(例: 四・八・二十四時間)をチケットの明示的なISOタイムスタンプに足し、安定したUTC期限を保存します。
パイプライン遅延列
ETLジョブ・キャッシュ・予定リトライ向けに、基準ISO日時+設定した時間オフセットとして遅延イベント時刻を具体化します。
よくある質問
日時に時間を加算するとは何ですか?
明示的なISO-8601タイムスタンプを文字列だけからUTCに変換し、有限の時間数だけ前後へ移し、シフト後のUTC日時を返すことです。
自分のPCのローカルタイムゾーンを使いますか?
いいえ。 計算はすべて入力文字列のみから導くUTCです。入力内の数値オフセットは絶対時刻への変換時に一度だけ適用され、結果は常に末尾Z付きで出力されます。
小数の時間は使えますか?
はい。 1.5のような値はround(1.5 × 3600) = 5400整数秒になります。非有限値や極端な大きさは拒否されます。
どの日時形式が受け付けられますか?
日付のみYYYY-MM-DD(UTC深夜0時)、または秒・小数が任意の完全日時で、Zまたは数値±HH:mmオフセットで終わる形式です。桁幅が固定でない緩い形は拒否されます。
結果はどのタイムゾーンで表示されますか?
常にUTCです。UTCとの時差がついた日時は計算の前にUTCへ換算され、時刻のない日付だけを入力した場合はUTCの午前0時として扱われます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/add-hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-03-01T10:00:00Z","hours":5}'const res = await fetch("https://api.kit.forhosting.com/date/add-hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-03-01T10:00:00Z","hours":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-03-01T10:00:00Z","hours":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-hours", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"datetime": "2024-03-01T10:00:00Z",
"hours": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_hours",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
タイムスタンプを一定の時間数だけずらす作業は、API・ジョブスケジューラ・SLA時計・表計算の取り込みで日常的ですが、ホストのタイムゾーンや夏時間により、一見単純な加算が不安定なテストの原因になります。無料のブラウザフォームと有料APIは同一の同型関数を共有し、成功1件あたり$0.002です。
送信する内容と返ってくる内容
基準文字列にはdate・dt・timestamp・tsの別名も使えます。典型確認は、UTC十時に五時間を足して同日十五時に達する、二十四時間を足して暦日をまたぐ、朝のタイムスタンプから三時間を引く、プラス零二オフセット入力を計算後の純粋なZ結果に変換する、平年の2月29日を拒否する、などです。素早い確認には無料ブラウザフォームを、一括のSLA期限や回帰フィクスチャには同一契約のスクリプト呼び出しを使います。必須フィールドは二つです。datetimeは例えば二千二十四ハイフン零三ハイフン零一 T 十コロン零零コロン零零 Z のようなISO-8601文字列、hoursは五・零・マイナス三・一点五などの有限数です。欠落フィールド、文字列でないdatetime、ISO形に合わない文字列、非有限の時間オフセット、存在しない暦日、範囲外の結果年はinvalid_inputで失敗し課金されません。成功時は、整形した基準datetime、適用したhoursオフセット、加算後のUTC ISO結果、結果の年・月・日・時・分・秒、結果のepoch_seconds、加算した整数delta_seconds、hours_added、UTC再構成を示す短いformulaを返します。成功したAPI呼び出しの料金は公開ベースの$0.002/件で、検証失敗は前払い残高を消費しません。
日時に時間を加算する計算機が実務で使われる場面
本機能は純粋なparseエンジンのため、API料金は成功1件あたり公開ベースの$0.002で、検証失敗は残高を消費しません。
連携の活用例
真夜中付近のQAフィクスチャ
ホスト時計に依存せず、日境界とうるう日をまたぐ決定的な期待タイムスタンプを回帰テスト用に生成します。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API要求は前払いKIT残高を成功1件あたり$0.002で使い、無効入力は課金されません。