保存したプロパティを確認
UTCと分かっているDateTime.TicksやUtcTicksならUTCを選びます。DateTimeOffset.Ticksには別のOffsetが必要です。日時に時差を付けて逆変換するか、未指定の時計表示として確認してください。
日時
DateTime.Ticksまたは秒を含む日時を1行ずつ入力し、UTCか未指定かを明示してください。
入力はこのブラウザー内で処理され、サーバーには送信されません。
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変換はUTCの621355968000000001を1970-01-01T00:00:00.0000001Zとして表示します。この7桁の日時を逆方向に戻すため、ミリ秒未満の差も残ります。
Unspecifiedは時計の表示を表すだけで、確定した瞬間ではありません。結果にはZもUnix欄も付けず、元のログにないタイムゾーン情報を補わないようにします。
UTCと分かっているDateTime.TicksやUtcTicksならUTCを選びます。DateTimeOffset.Ticksには別のOffsetが必要です。日時に時差を付けて逆変換するか、未指定の時計表示として確認してください。
例には最小日時、Unix起点の1 tick後、最大日時が含まれます。プレビューして適用すると、小数秒の末尾を確かめられます。取り消しでは以前の入力と結果が一緒に戻ります。
自動変換は編集が止まって350ミリ秒後に実行します。オフならボタンまたはCtrl/Cmd + Enterを使用。結果の逆変換には全行の成功が必要で、設定を変えた直後の古い結果は出力できません。
Ticksと日時の間に浮動小数点の変換を挟みません。大きな整数はJSONでも文字列なので、後段の解析で末尾が丸められることを防げます。
UTCモードでは+09:00などの日時をUTCに直してから数えます。接尾辞なしなら選択した解釈を使用し、閲覧中の端末の地域には依存しません。
Ticksからミリ秒を整数で求める場合も、残りをtick単位で別に示します。1970年の直前は負のUnix値となり、0へ切り捨てられません。
失敗した入力も元の行番号とともに残します。表示は50行ずつ追加でき、コピーとダウンロードは画面に出ていない行も含む全件のレポートです。
Ticks → 日時を選び、整数を入力します。C#ならnew DateTime(ticks)で日時を作れますが、KindはUnspecifiedです。保存値がUTCと確認できる場合はDateTimeKind.Utcを渡すコンストラクターを使います。
Ticksは時計の表示を数値化し、Kindがその意味を示します。同じ瞬間でもDateTime.NowとToUniversalTime()では表示する時刻が異なるため、tick数も違います。整数だけに保存するとKindは残りません。
1ミリ秒は10,000 ticksです。ただし単純に割った値の起点は西暦1年です。UTCのUnixミリ秒を求めるには621355968000000000を先に引き、割り算の余りも必要に応じて保持します。
現代の日時は32ビットintに収まりません。.NETでは64ビットlongを使用し、浮動小数点しか扱わないシステムへ渡す場合は文字列にしてください。基準日との差だけを保存する方法には別途範囲の設計が必要です。
100ナノ秒を単位とする表現により、ミリ秒より細かい日時を64ビット値で扱えます。ただし、値を細かく表せることと、端末の時計がその細かさで測定できることは別です。
予想と違う結果ですか?