日時

.NET Ticks変換日時に直しても末尾を残す

DateTime.Ticksまたは秒を含む日時を1行ずつ入力し、UTCか未指定かを明示してください。

.NET Ticks変換

入力

入力はこのブラウザー内で処理され、サーバーには送信されません。

結果

オプション

DateTime.Ticks専用・起点0001-01-01・1 tick = 100 ns。

各行は符号なし整数、またはYYYY-MM-DDTHH:mm:ssと小数秒1〜7桁。UTCではZまたは±HH:mmが使え、省略時もUTC。未指定では接尾辞を付けません。

整数にKindは含まれません。未指定では日付と時刻だけを保持し、Unix値は出力しません。Localの解釈には元の地域情報が必要です。

日時は小数秒7桁。Unix秒・ミリ秒は負の無限大方向に切り下げ、非負の余りをtick単位で示します。

最大1000物理行、100000個のUTF-16コード単位。空行はエラーとして報告します。

入力するかサンプルを読み込んでください。

.NET Ticks変換は、ログの大きな整数を日時として読み直すための道具です。ミリ秒までの表示では同じに見える2件でも、小数秒7桁なら末尾の違いを確認できます。

最初に元の型を確かめてください。Ticksという名前でも、DateTime、TimeSpan、Stopwatchでは意味が異なります。整数だけからKindや元のタイムゾーンを復元することはできません。

.NET Ticks変換を使う理由

往復しても1 tickを失わない

.NET Ticks変換はUTCの621355968000000001を1970-01-01T00:00:00.0000001Zとして表示します。この7桁の日時を逆方向に戻すため、ミリ秒未満の差も残ります。

拡大された細かな目盛りとカレンダー付き時計が双方向の経路でつながる図。

時差が不明なら断定しない

Unspecifiedは時計の表示を表すだけで、確定した瞬間ではありません。結果にはZもUnix欄も付けず、元のログにないタイムゾーン情報を補わないようにします。

同じ目盛りから同じ時刻の時計へ分岐し、一方だけが地球と時間軸につながる図。

Kindと桁数を先に確認

01

保存したプロパティを確認

UTCと分かっているDateTime.TicksやUtcTicksならUTCを選びます。DateTimeOffset.Ticksには別のOffsetが必要です。日時に時差を付けて逆変換するか、未指定の時計表示として確認してください。

02

境界を例で試す

例には最小日時、Unix起点の1 tick後、最大日時が含まれます。プレビューして適用すると、小数秒の末尾を確かめられます。取り消しでは以前の入力と結果が一緒に戻ります。

03

更新を制御する

自動変換は編集が止まって350ミリ秒後に実行します。オフならボタンまたはCtrl/Cmd + Enterを使用。結果の逆変換には全行の成功が必要で、設定を変えた直後の古い結果は出力できません。

日時と整数を正確に照合

整数のまま相互変換

Ticksと日時の間に浮動小数点の変換を挟みません。大きな整数はJSONでも文字列なので、後段の解析で末尾が丸められることを防げます。

明示した時差を優先

UTCモードでは+09:00などの日時をUTCに直してから数えます。接尾辞なしなら選択した解釈を使用し、閲覧中の端末の地域には依存しません。

切り捨てた分を見える形に

Ticksからミリ秒を整数で求める場合も、残りをtick単位で別に示します。1970年の直前は負のUnix値となり、0へ切り捨てられません。

行の対応を保つ

失敗した入力も元の行番号とともに残します。表示は50行ずつ追加でき、コピーとダウンロードは画面に出ていない行も含む全件のレポートです。

受け付ける値と解釈の範囲

DateTimeの起点に限定
公暦0001-01-01から100ナノ秒単位で数えます。FILETIME、WebKit、Excel、TimeSpan、Stopwatch、Environment.TickCount、rowversion、DateTime.ToBinaryは対象外で、桁数による自動判定もしません。
年と整数の上限
0〜3155378975999999999、0001〜9999年を受け付けます。入力の見かけ上の年が範囲内でも、時差を適用したUTC日時が範囲外になる場合はエラーです。
曖昧な日付を補わない
YYYY-MM-DDTHH:mm:ssのTは空白1文字に置換可能。小数秒は1〜7桁、接尾辞はZか±HH:mmです。うるう秒、24:00、存在しない日付、秒の省略、8桁以上、前後の空白は受け付けません。
DateTimeKindの変換とは別
解釈の切り替えは同じ項目の読み方を変えます。LocalからUTCへの変換や地域別の夏時間判定ではありません。時差は±14:00以内、-00:00は不可。未指定にはZも付けられません。
行数とサイズの制限
最大1,000物理行、100,000 UTF-16コード単位です。末尾の改行を含め、空行もエラーとして残します。上限超過は全体を拒否。ファイル、URL取得、日時の加減算、現在時刻の表示はありません。
書き換えには確認と取り消し
例、クリア、結果の逆変換は新しい本文と文字数を先に表示し、適用後に1回取り消せます。逆変換は丸めたUnix値を使わず、エラー行を飛ばして続行することもありません。

.NET Ticks変換のよくある質問

Ticksを日付に変換するには?

Ticks → 日時を選び、整数を入力します。C#ならnew DateTime(ticks)で日時を作れますが、KindはUnspecifiedです。保存値がUTCと確認できる場合はDateTimeKind.Utcを渡すコンストラクターを使います。

DateTime.Ticksはタイムゾーンに依存しますか?

Ticksは時計の表示を数値化し、Kindがその意味を示します。同じ瞬間でもDateTime.NowとToUniversalTime()では表示する時刻が異なるため、tick数も違います。整数だけに保存するとKindは残りません。

Ticksからミリ秒を取得するには?

1ミリ秒は10,000 ticksです。ただし単純に割った値の起点は西暦1年です。UTCのUnixミリ秒を求めるには621355968000000000を先に引き、割り算の余りも必要に応じて保持します。

DateTime.Now.Ticksをintに保存できますか?

現代の日時は32ビットintに収まりません。.NETでは64ビットlongを使用し、浮動小数点しか扱わないシステムへ渡す場合は文字列にしてください。基準日との差だけを保存する方法には別途範囲の設計が必要です。

DateTimeがミリ秒ではなくticksを使うのはなぜ?

100ナノ秒を単位とする表現により、ミリ秒より細かい日時を64ビット値で扱えます。ただし、値を細かく表せることと、端末の時計がその細かさで測定できることは別です。

予想と違う結果ですか?

元の記録を確かめる

.NET Ticks変換で既知の日時と元の整数を照合し、解釈を添えた全件レポートを保存してください。