日時を .NET ticks に変換
時差+02:30の2024年2月29日12:34:56.1234567は、UTCで数えて638447978961234567 ticksです。日時と時差を入れると、.NETの正確なtick数と、それが表すUTCの日時が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 日時
- 2024-02-29T12:34:56.1234567+02:30
- UTC日時
- 2024-02-29T10:04:56.1234567Z
- .NETティック
- 638447978961234567
- ティックの単位
- 100 nanoseconds
完全な ISO 8601 日時を、.NET DateTime で使用される正確な ticks 値へ変換します。UTC 指定子または数値オフセットを必須とし、グレゴリオ暦の日付と時刻を検証したうえで、100ナノ秒までの小数を保持し、すべて UTC で計算します。
曖昧さのない ISO 日時を入力してください
グレゴリオ暦の日時を YYYY-MM-DDTHH:mm:ssZ の形式で入力するか、Z を +02:30 や -05:00 などの数値オフセットに置き換えてください。.NET ticks への変換は概略の日付ではなく正確な瞬間を表すため、秒の指定が必要です。小数点の後には1桁から7桁まで追加できます。
7桁は DateTime tick の100ナノ秒精度に正確に対応します。短い小数は右側をゼロで補うため、.5 は5 ticks ではなく0.5秒を意味します。タイムゾーンの指定は必須です。
これにより、ローカルタイムゾーンが異なるコンピューターで同じ文字列から別の結果が生じることを防ぎます。存在しない日付、うるう秒、24時、ISO の範囲外のオフセット、および UTC 正規化後に0001年から9999年の範囲を外れる瞬間は拒否されます。
この厳密な入力規約は、暗黙のタイムゾーン解釈が問題となる移行、テストデータ、データベース検証、プロトコル調査に適しています。意図した瞬間を簡潔かつ検証可能に記録するには、大文字の Z と区切り文字 T をそのまま使用してください。
ticks 値の計算方法をご確認ください
. NET DateTime の1 tick は、先発グレゴリオ暦の 0001-01-01T00:00:00 から数えた100ナノ秒の間隔です。計算では、まず年、月、日、時、分、秒を検証します。次に、グレゴリオ暦のうるう年規則を適用して指定年より前の完了日数を数え、当年の完了日数を加え、時刻を秒へ変換します。
ticks 値を作る前に、指定された数値オフセットを差し引いて UTC を求めます。最後に秒を1000万倍し、7桁の小数成分を加算します。システム時計、ホストのタイムゾーン、ネットワーク要求、乱数、組み込みの Date パーサーは使用しません。
そのため、サーバー worker と、どのタイムゾーンのブラウザーでも結果は同一です。
正規化した UTC 結果で連携を検証してください
整数を採用する前に、指定オフセットによって時刻が、必要な場合は日付も、想定した方向へ移動したことを確認できます。C# では、この数値は年1を起点とする正規化済み UTC 時計時刻の ticks に対応し、DateTime のバイナリ kind フラグは含みません。
DateTime.ToBinary の値、DateTimeOffset の保存規約、アプリケーション固有のエポックを調べる際は、この違いにご注意ください。UTC が誤っていればオフセット処理、UTC が一致して整数だけ異なればエポック、精度、数値丸めが原因だと切り分けやすくなります。
活用例
旧式タイムスタンプ記録の調査
既知の ISO 瞬間を変換し、ログ、エクスポート、旧アプリケーション表に保存された ticks 値と比較します。
オフセットと精度の問題の診断
正規化された UTC 日時と ticks 値を並べ、タイムゾーンの誤りと小数秒または整数丸めの問題を区別します。
よくある質問
.NET の1 tick は何を表しますか?
1 tick は100ナノ秒です。1秒には1000万 ticks があります。
タイムゾーンの指定は必要ですか?
はい。 Z または +01:00 のようなオフセットをご使用ください。タイムゾーンのない日時は曖昧なため、ホスト設定で解釈せず拒否します。
小数部は7桁まで使用できますか?
はい。 1桁から7桁まで受け付け、短い小数は DateTime の7桁精度になるよう補完します。
DateTime の kind フラグも含まれますか?
いいえ。 年1からの UTC ticks 値を返し、DateTime.ToBinary などで使われる追加フラグは含みません。
どの範囲の日時を変換できますか?
UTCに直した日時が0001年から9999年までに入るものなら変換できます。実在しない日付やうるう秒、24時、通常の範囲を超える時差は受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/date-to-dotnet-ticks \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-02-29T12:34:56.1234567+02:30"}'const res = await fetch("https://api.kit.forhosting.com/date/date-to-dotnet-ticks", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-02-29T12:34:56.1234567+02:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/date-to-dotnet-ticks",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-02-29T12:34:56.1234567+02:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/date-to-dotnet-ticks", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-02-29T12:34:56.1234567+02:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-02-29T12:34:56.1234567+02:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/date-to-dotnet-ticks", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"datetime": "2024-02-29T12:34:56.1234567+02:30"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.date_to_dotnet_ticks",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
結果は10進文字列で返すため、非常に大きな値でも JavaScript、JSON、表計算、コマンドラインツール、言語間の結合テストで精度が失われません。
ticks 値の計算方法をご確認ください
実用的な . NET ticks 値のほとんどは JavaScript の安全な整数範囲を超えるため、dotnet_ticks は意図的に10進文字列で返します。64ビット整数を扱える言語では整数として解釈し、大きな数を丸める可能性のある JSON システムを通す場合は文字列のまま保持してください。
正規化した UTC 結果で連携を検証してください
応答には、元の datetime、小数部が正確に7桁の正規化された utc_datetime、正確な dotnet_ticks 文字列、および ticks の単位説明が含まれます。正規化された UTC フィールドは有用な検証材料です。API ペイロードを C# ログ、SQL エクスポート、テレメトリ記録、またはタイムスタンプを ticks として保存した旧式ファイルと照合する際に特に役立ちます。
連携の活用例
言語間テスト用データの準備
コンピューターのタイムゾーンに依存せず、JavaScript、C#、データベース、API の結合テスト用に正確な期待 ticks 文字列を作成します。
技術的な質問
dotnet_ticks が文字列で返されるのはなぜですか?
多くの DateTime ticks 値は JavaScript の安全な整数範囲を超えます。10進文字列なら JSON とブラウザーで全桁を保持できます。
API リクエストの料金はいくらですか?
API リクエスト1回の料金は $0.002 です。ブラウザー版も同じ決定論的な変換ロジックを使用します。