問題タブ [nodatime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5473 参照

c# - NodaTime JSON をシリアライズする

BCL の DateTime と比較した NodaTime のプロトタイプ プロジェクトを作成していますが、この結果を実行すると recursionLimit exceeded エラーが発生します。

再帰制限を超えました

これは、ビューモデルを JSON 化するために使用している関数です。この関数が戻った後にエラーが発生します。

私のビューモデルは、私が調べたときに正しく構築されています。これが私のビューモデルのコードです。

viewModel のコードにコメントを付けると JsonResult を実行できるため、NodaTime オブジェクトが正しくシリアル化されていないと確信しています。

このページからこれを読みましたNodaTime API リファレンス

この名前空間のコードは、現在 Noda Time NuGet パッケージには含まれていません。それはまだ「実験的」とみなされます。これらのシリアライザーを使用するには、プロジェクトのホームページから Noda Time のソース コードをダウンロードしてビルドしてください。

そのため、ソース コードをダウンロードしてビルドし、dll のプロジェクト参照を置き換えましたが、JsonSerialization クラスを実装する方法がわかりません。

NodaTime.Serialization.JsonNet クラスを使用して NodaTime オブジェクトをシリアライズ可能にする方法を誰かに説明してもらえますか?

0 投票する
2 に答える
611 参照

asp.net-mvc-4 - MVC4の_LayoutにIClockを挿入するには?

デフォルトの MVC テンプレートは「@DateTime.Now.Year」を使用して著作権年を表示しますが、どこでも NodaTime を使用したいと思います。

現在、Ninject を使用して、特定の時間または日付を実行するコントローラーに IClock のインスタンスを挿入しています。「DateTime.Now」と同様に、MVC で「グローバル IClock」にアクセスするための推奨される方法はありますか? IClock をすべての Controller に注入し、それをすべてのビューに渡すことができると思いますが、時々グローバルなものにアクセスできると便利です。

レイアウト テンプレートで SystemClock.Instance を使用できることはわかっています...代わりに、グローバルでテスト可能な IClock を参照する方がはるかに優れています。

0 投票する
5 に答える
5559 参照

nodatime - NodaTime DateTimeZone を TimeZoneInfo に変換する

DateTimeZonezoneinfo データの優れたサポートのために NodaTime を使用していますが、Quartz.NET で使用するために変換する必要がある場合がありTimeZoneInfoます。

ここで推奨されるアプローチは何ですか? IANA には、Windows タイム ゾーンと zoneinfo タイム ゾーン間のマッピング ファイルがあります。この情報を利用する拡張メソッドを作成できますか?

0 投票する
2 に答える
2231 参照

c# - 時間とオルソンタイムゾーンを別のオルソンタイムゾーンの時間に変換する方法は?

私は入力として持っています:

  1. 時刻(午前8時)
  2. オルソン タイムゾーン (アメリカ/ニューヨーク)

時刻を別のオルソン タイムゾーン (アメリカ/ロサンゼルス) に変換する必要があります。

.net または nodatime でその変換を行う最善の方法は何ですか。基本的に、C# でこのメソッドに相当するものを探しています。

しかし、上記のこの.Netメソッドは、Windowsタイムゾーン名でのみ機能します(そして、私はオルソン名を持っています)

0 投票する
1 に答える
1219 参照

datetime - NodaTimeのSystem.TimeZoneInfo.IsDaylightSavingTimeに相当するものは何ですか?

System.TimeZoneInfoには、 IsDaylightSavingTimeというメソッドがあります。このメソッドは、DateTimeオブジェクトを受け取り、指定された日時がそのタイムゾーンのDSTに該当する場合にtrueを返します。NodaTimeまたは同じ結果を達成するための別の方法に同等の関数はありますか?

0 投票する
1 に答える
1233 参照

c# - NodaTime を使用して無効な (スキップされた) 日時値を UTC に変換する

私が達成したいのは、(EST/EDT にあると想定される文字列から解析された) DateTime を UTC に変換することです。Olson タイムゾーンを使用する必要があるため、NodaTime を使用しています。

NodaTime の ZoneLocalMappingResolver を使用して無効な (スキップされた) DateTime を UTC に変換すると、ギャップの後に間隔の開始を返すように CustomResolver を構成したため、入力の分と秒の部分が変換されません。NodaTime にはTimeZoneInfo.IsInvalidTimeに相当するものがないようです。

NodaTime を使用して、スキップされた日時値を UTC に変換し、以下の Utils クラスの GetUtc() メソッドの結果と一致させるにはどうすればよいですか? (Utils.GetUtc メソッドは NodaTime ではなく System.TimeZoneInfo を使用します)

これはテストケースです:

これは私が得ているものです:

Assert.AreEqual が失敗しました。予想:<2013-03-10 07:15:45.000000>。実際:<2013-03-10 07:00:00.000000>。

これが Utils クラスです (これもgithubにあります):

0 投票する
1 に答える
1175 参照

nodatime - NodaTimeを使用して、オフセット付きの日付と時刻の文字列をどのように解析しますか?

アプリケーション内でNodaTimeを使用する方法を学習しようとしていますが、このライブラリで特定のことを行う方法の例をあまり見つけることができません。

与えられた:

  • の日付/時刻テキスト"2012/08/30 17:45:00"
  • フォーマット文字列は"yyyy/MM/dd HH:mm:ss"
  • UTCからの日付/時刻オフセットは-5

これをNodaTimeで解析して、

  • OffsetDateTime
  • Instant
0 投票する
1 に答える
151 参照

iso - NodaTime コンストラクターは Hours パラメーターで 24 を受け入れますか?

NodaTime をダウンロードする前に、NodaTime に関する 1 つの質問に対する簡単な回答を得たいと思っています。これまでのところ、私は NodaTime とその API について読んでいますが、非常に慎重に考えられているようです。

データベース バックエンド、データベース プロバイダーを備えたデスクトップ クライアント、および主要なブラウザーで実行する必要がある Web クライアントを備えたアプリケーションで遭遇した混乱の一部を解消するのに役立つことを願っています。DateTime および Time での ISO 8601 のサポートは、さまざまなデータベース、データベース プロバイダー、および Web プラットフォームによって大きく異なります。たとえば、Internet Explorer は ISO 8601 に準拠していますが、SQL Server は準拠していません。Chrome がそうではないため、web UI タイムピッカーはそうではありません。

質問: NodaTime では、24:00 は有効な時間値ですか? 24 は Time コンストラクターの時間パラメーターの有効な引数ですか?

背景: ISO 8601 では、真夜中の 2 つの表現が許可されています。「今朝の真夜中」の 00:00 と「今夜の真夜中」の 24:00 です。DateTime オブジェクトがタイムライン上にある場合、時間要素が 24:00 の日付は、翌日の 00:00 と一致します。これらは、2 つの異なる表現を持つ同じタイムライン インスタントであり、両方の表現が ISO ごとに有効です。

時間のみの値は、タイムラインから切り離されます。00:00 の時刻は、切り離された 24 時間制の日の開始時に発生し、24:00 の時刻のみの値は 00:00 の 24 時間後です。Time タイプは、1 時間に 24 を受け入れる必要があります。24 が時である場合、秒、ミリ秒、ティックの最大値は 0 です (ただし、モジュロ演算が関係し、時間が繰り越されて 24:01 が 00:01 になる場合を除きます。ただし、ISO はこの実装の詳細について何も述べていません。ちゃんと覚えたら)。

0 投票する
1 に答える
11412 参照

c# - 野田時間入門

かなり単純なアプリケーションに野田時間を使用しようとしていますが、非常に基本的なユースケースを処理するためのドキュメントを見つけるのに苦労しています:

ログインしているユーザーがいて、優先タイムゾーンを設定に保存します。クライアントから送信される日付/時刻は、既知のテキスト形式 (例: "dd/MM/yyyy HH:mm") で、既知のタイム ゾーン ID (例: "Europe/London") が付いています。これらの時刻を UTC/Noda Instants に変換して、各日付のタイム ゾーン情報をデータベースに保存する必要がないようにすることを計画していました。

まず、これは賢明なアプローチのように聞こえますか? 私はほとんど何でも自由に変更できるので、より良い/より賢明なコースに設定できれば幸いです. データベースは、C# ドライバーを使用する MongoDb です。

私が試したことはこれらの線に沿っていますが、最初のステップを乗り越えるのに苦労しています!

私が持っているのは、さまざまな変換の失敗だけです。「野田時間はじめよう」のページを指差していただけると嬉しいです!

0 投票する
1 に答える
1705 参照

c# - NodaTimeで開店時間を正しく扱う

私は現在、ビジネスの開閉時間を処理するかなり単純なアプリを作成しており、情報を適切に保存する方法を見つけようとして深刻な問題に直面しています。

私たちの重要な機能のほとんどは、時間を完全に完璧にすることに大きく依存しているため、最初から可能な限り最善の方法で物事を成し遂げたいと思っています!

さらに、データはユーザーによって入力されるため、基になる表現がもう少し複雑な場合 (たとえば、TimeSpans を使用して午前 0 時過ぎの開始を説明する場合)、これはユーザーには見えないようにする必要があります。

まず、ビジネスの営業時間を曜日ごとに保存する必要があります。たとえば、次のようにタイムゾーンが関連付けられています。

これを保存する最良の方法は、次のようなクラスを使用することだと現在考えています。

ただし、ここには 2 つの主な複雑な問題があります。

  • ZonedDateTime の年、月、または日付の部分を保存したくありません。DayOfWeek だけを気にします。

    確かに、1970 年 1 月 1 日以降の最初の月曜日/火曜日などとして各値を保存することもできますが、これはハックであり、かなり間違っているようです。実装。また、後で日付の計算を試みた場合、これはおそらく奇妙で風変わりなバグで終わるだろうと感じています。

  • いずれにせよ、ユーザーは ClosingTime を入力する必要があります。クライアント側では、OpeningTime の前であれば ClosingTime が翌日であると常に仮定するような単純なことを行うことができると思いますが、これも完璧ではなく、24 時間以上開いている可能性のある場所を考慮していません (例:スーパー)

私が考えたもう1つのことは、時間/日を含むテーブルを使用し、人々が営業時間を選択するために週の時間を強調表示できるようにすることですが、それでも、OpeningTimeのDayOfWeek部分のみを保存したいという同じ問題に遭遇します.

過去 6 時間、私たち人間が時間を表現する愉快でばかげた方法について読んだことで、少し燃え尽きてしまいました!