問題タブ [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.
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 オブジェクトをシリアライズ可能にする方法を誰かに説明してもらえますか?
asp.net-mvc-4 - MVC4の_LayoutにIClockを挿入するには?
デフォルトの MVC テンプレートは「@DateTime.Now.Year」を使用して著作権年を表示しますが、どこでも NodaTime を使用したいと思います。
現在、Ninject を使用して、特定の時間または日付を実行するコントローラーに IClock のインスタンスを挿入しています。「DateTime.Now」と同様に、MVC で「グローバル IClock」にアクセスするための推奨される方法はありますか? IClock をすべての Controller に注入し、それをすべてのビューに渡すことができると思いますが、時々グローバルなものにアクセスできると便利です。
レイアウト テンプレートで SystemClock.Instance を使用できることはわかっています...代わりに、グローバルでテスト可能な IClock を参照する方がはるかに優れています。
nodatime - NodaTime DateTimeZone を TimeZoneInfo に変換する
DateTimeZone
zoneinfo データの優れたサポートのために NodaTime を使用していますが、Quartz.NET で使用するために変換する必要がある場合がありTimeZoneInfo
ます。
ここで推奨されるアプローチは何ですか? IANA には、Windows タイム ゾーンと zoneinfo タイム ゾーン間のマッピング ファイルがあります。この情報を利用する拡張メソッドを作成できますか?
c# - 時間とオルソンタイムゾーンを別のオルソンタイムゾーンの時間に変換する方法は?
私は入力として持っています:
- 時刻(午前8時)
- オルソン タイムゾーン (アメリカ/ニューヨーク)
時刻を別のオルソン タイムゾーン (アメリカ/ロサンゼルス) に変換する必要があります。
.net または nodatime でその変換を行う最善の方法は何ですか。基本的に、C# でこのメソッドに相当するものを探しています。
しかし、上記のこの.Netメソッドは、Windowsタイムゾーン名でのみ機能します(そして、私はオルソン名を持っています)
datetime - NodaTimeのSystem.TimeZoneInfo.IsDaylightSavingTimeに相当するものは何ですか?
System.TimeZoneInfoには、 IsDaylightSavingTimeというメソッドがあります。このメソッドは、DateTimeオブジェクトを受け取り、指定された日時がそのタイムゾーンのDSTに該当する場合にtrueを返します。NodaTimeまたは同じ結果を達成するための別の方法に同等の関数はありますか?
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にあります):
nodatime - NodaTimeを使用して、オフセット付きの日付と時刻の文字列をどのように解析しますか?
アプリケーション内でNodaTimeを使用する方法を学習しようとしていますが、このライブラリで特定のことを行う方法の例をあまり見つけることができません。
与えられた:
- の日付/時刻テキスト
"2012/08/30 17:45:00"
- フォーマット文字列は
"yyyy/MM/dd HH:mm:ss"
- UTCからの日付/時刻オフセットは
-5
これをNodaTimeで解析して、
OffsetDateTime
?Instant
?
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 はこの実装の詳細について何も述べていません。ちゃんと覚えたら)。
c# - 野田時間入門
かなり単純なアプリケーションに野田時間を使用しようとしていますが、非常に基本的なユースケースを処理するためのドキュメントを見つけるのに苦労しています:
ログインしているユーザーがいて、優先タイムゾーンを設定に保存します。クライアントから送信される日付/時刻は、既知のテキスト形式 (例: "dd/MM/yyyy HH:mm") で、既知のタイム ゾーン ID (例: "Europe/London") が付いています。これらの時刻を UTC/Noda Instants に変換して、各日付のタイム ゾーン情報をデータベースに保存する必要がないようにすることを計画していました。
まず、これは賢明なアプローチのように聞こえますか? 私はほとんど何でも自由に変更できるので、より良い/より賢明なコースに設定できれば幸いです. データベースは、C# ドライバーを使用する MongoDb です。
私が試したことはこれらの線に沿っていますが、最初のステップを乗り越えるのに苦労しています!
私が持っているのは、さまざまな変換の失敗だけです。「野田時間はじめよう」のページを指差していただけると嬉しいです!
c# - NodaTimeで開店時間を正しく扱う
私は現在、ビジネスの開閉時間を処理するかなり単純なアプリを作成しており、情報を適切に保存する方法を見つけようとして深刻な問題に直面しています。
私たちの重要な機能のほとんどは、時間を完全に完璧にすることに大きく依存しているため、最初から可能な限り最善の方法で物事を成し遂げたいと思っています!
さらに、データはユーザーによって入力されるため、基になる表現がもう少し複雑な場合 (たとえば、TimeSpans を使用して午前 0 時過ぎの開始を説明する場合)、これはユーザーには見えないようにする必要があります。
まず、ビジネスの営業時間を曜日ごとに保存する必要があります。たとえば、次のようにタイムゾーンが関連付けられています。
これを保存する最良の方法は、次のようなクラスを使用することだと現在考えています。
ただし、ここには 2 つの主な複雑な問題があります。
ZonedDateTime の年、月、または日付の部分を保存したくありません。DayOfWeek だけを気にします。
確かに、1970 年 1 月 1 日以降の最初の月曜日/火曜日などとして各値を保存することもできますが、これはハックであり、かなり間違っているようです。実装。また、後で日付の計算を試みた場合、これはおそらく奇妙で風変わりなバグで終わるだろうと感じています。
- いずれにせよ、ユーザーは ClosingTime を入力する必要があります。クライアント側では、OpeningTime の前であれば ClosingTime が翌日であると常に仮定するような単純なことを行うことができると思いますが、これも完璧ではなく、24 時間以上開いている可能性のある場所を考慮していません (例:スーパー)
私が考えたもう1つのことは、時間/日を含むテーブルを使用し、人々が営業時間を選択するために週の時間を強調表示できるようにすることですが、それでも、OpeningTimeのDayOfWeek部分のみを保存したいという同じ問題に遭遇します.
過去 6 時間、私たち人間が時間を表現する愉快でばかげた方法について読んだことで、少し燃え尽きてしまいました!