問題タブ [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# - DateTimeOffset は夏時間にどのように対処しますか?
スケジュールを曜日、時間、分としてデータベースに保存しています。データが読み取られるとDateTime
、その日、時、分が次に発生するオブジェクトを作成しますが、これを DST に対応するように変更する必要があります。必要に応じてデータベースを変更できます。
DateTimeOffset
UTC 日付/時刻とオフセットが格納されていることを知っています。また、この MSDN ブログ エントリDateTimeOffset
から、「夏時間で作業する」ために使用する必要があることも知っています。
私が理解するのに苦労しているDateTimeOffset
のは、まさに「夏時間で機能する」方法です。私の理解では、サマータイムは政治的な決定であり、純粋なオフセットから推測することはできないということです. 名前付きのタイムゾーンや国ではなく、オフセットのみを保存する場合、この構造が DST フレンドリーであるとは言えません。
entity-framework - カスタムタイプのインスタンスを保存する方法をエンティティフレームワークに伝える方法 (スカラーとして保存できる)
私のエンティティ クラスの 1 つは、BIGINT として SQL Server データベースに格納できます。私の質問は、エンティティ クラスのインスタンスを格納および取得する方法を知るために、Entity Framework コンテキストを取得するにはどうすればよいですか?
もっと詳しく。私はNoda Timeを使用しています。これは、SQL または .NET の datetime よりも (はるかに) 広い範囲の日付を表すことができます (そして、デザートのトッピングです)。私のエンティティ クラスである Happening は、NodaTime の Instant クラスのラッパーです。.SetFromLong(long instant) や .ToLong() などのメソッドを使用して、ロングからハプニングを設定し、ハプニングからロングを取得できます。
現在、モデルが機能しており、ドット ネット DateTime 型のプロパティを含むクラスを保存しています。代わりに、カスタム タイプ "Happening" のプロパティを使用したい場合、それらを保存する方法を Entity Framework に指示するにはどうすればよいですか?
モデリングとマッピングに関するこの記事を読んでいる場合、私は正しい道を進んでいますか、それとも単純なものを見逃していますか?
http://msdn.microsoft.com/en-us/library/bb896343.aspx
エンティティ フレームワーク 4 を使用しています。
c# - NodaTimeを使用して包括的日数を計算します
たとえば、次のコードがある場合:
それでdaysBetween.Days == 1
ただし、私が計算する範囲は、それを2日としてカウントする必要があります。つまり、開始日と終了日を含める必要があります。
実際の方法では、開始日と終了日(1年以内の間隔)を取得して終了することができ、日数を計算する必要があります。31日を超える場合、残りは丸1週間の数として返されます。
私はそのロジックを正常に機能させていますが、カウントが排他的であるため、私は1日です。
startDate.addDays(-1)
作成する前にできると思いますnodaStart
が、野田にピリオドを返してもらうためのもっとエレガントでかわいらしい方法があるのではないかと思います。
ありがとう
更新:クラスのソースコードを読み取りましたが、演算子がオーバーロードされているため、追加できますPeriod
+
c# - ZoneLocalMapping.ResultType.Ambiguous を正しく処理するにはどうすればよいですか?
私のコードでは、ZoneLocalMapping.ResultType.Ambiguous を処理しようとしています。この線
「Ambiguous 型の結果に対して EarlyMapping プロパティを呼び出さないでください」というメッセージとともに InvalidOperationException をスローします。
どのように対処すればよいかわかりません。例を教えてください。
これは私のコードがどのように見えるかです:
クラス ZoneLocalMapping を見ると、次のコードが表示されます。
そのため、例外が発生していますが、EarlierMapping を取得するにはどうすればよいですか?
javascript - サーバー時間ではなく、ローカル時間を取得する方法は?
これらのコード行を使用して、サーバーの時刻が正しく設定されているかどうかに関係なく、インドのグジャラート州の現地時間を調べます。しかし、これが機能していないことに気づきました。この行はSERVERTIMEを生成しますが、LOCALTIMEは生成しません。サーバーの時刻が誤って変更された場合に問題が発生します。
世界のどの国でも現地時間を取得するための正確な解決策は何ですか?
c# - Week および WeekYear からの LocalDate
NodaTime ライブラリを使用して、週番号と週 WeekYear に基づいて週の最初の曜日の LocalDate を計算するにはどうすればよいですか。
これの逆:
この偽のコードのようなもの:
c# - カレンダーを相互に変換するNodaTimeライブラリを使用する
私はNodaTimeを使用して問題を処理DateTime
し、ほとんどすべてのドキュメントを読みましたが、カレンダーを相互に変換するのに問題があります。
まず、野田さんがサポートしているカレンダーはいくつですか?
言うよう
CalendarSystem
に、カレンダーは4つだけです。a)CopticCalendar / b)GregorianCalendar / c)IslamicCalendar / d)JulianCalendar
では、他のカレンダーシステムはどうですか?
私はペルシャ暦、別名ジャラーリー暦を使用していますが、このカレンダーをNodaTimeで使用する方法はありますか?そして、それをグレゴリオ暦にどのように変換しますか?
私の最終的な目標は、時刻(経済特区)と日付の両方をUTCタイムゾーンとグレゴリオ暦に変換することです。たとえば、タイムゾーンとペルシャ暦のNow(
yyyy/MM/dd - HH:mm:ss
)は(1391/06/30-10:01:15)であり、ジョージア暦とUTCのNow ()は(2012/09/20-05:01:15)です。あなたの提案はありますか?時間は個別にはまったく関係ありませんが、日付、私はそれについて何も知りません(NodaTimeで)、そしてこれらの両方を1つのプロセスまたはメソッドで変換する方法はありますか?Asia/Tehran
c# - この場合、noda-timeは適用されますか?
私が取り組んでいるプロジェクトは基本的にデータコレクターです。オリエンテーションとして、アプリケーション層(OSI層7)の解析/分析機能を備えたWireshark(または同等のもの)と考えると役立つ場合があります。現在のバージョンは、15年以上の歴史を持つレガシーMFCアプリケーションです。それでも機能しますが、メンテナンス、安定性、スケーラビリティは私たちが直面している本当の懸念事項です。プロジェクトリーダーシップチームは最近、次世代の製品の開発を開始する必要があることに同意しました。製品は厳密にWindowsデスクトップベースの製品であるため、.NETを対象としています。
ユーザーが文字通り世界中で収集されたログファイルを定期的に分析していることを考えると、メッセージのタイムスタンプは非常に重要です。現在の製品はタイムスタンプの割り当てに使用されており、将来的には.NET側でタイムスタンプを取得するために_ftime_s()
使用するだけだと思っていました。System.DateTime.UtcNow
つまり、noda-timeについて読むまでは。今、私たちの問題領域は、私がこれまで考えていたよりも、時間関連の機能に関してもっと注意を払う必要があると思っています。
だからいくつかの質問。
nhibernate - SQL Server 2008/2012で一時的にNHibernateIUserTypeを作成するにはどうすればよいですか?
SqlServer2008/2012のタイプに論理的にマップされるNodaTimeタイプIUserType
のNHibernateを作成しようとしています。データベースから値の保存と読み込みを取得できます。ただし、エラーが発生するような現地時間の比較を含むクエリを作成することはできませんLocalTime
time
_session.Query<SchedulingTemplate>().Where(x => x.Start < end && x.End >= start)
SqlException (0x80131904): The data types time and datetime are incompatible in the less than operator.
私のユーザータイプの関連コードは次のとおりです。
問題は、データベースタイプが時間であることを示す上記のコードにもかかわらず、次のクエリを生成することです(SQLプロファイラーごと)。
exec sp_executesql N'select [...] from [SchedulingTemplate] scheduling0_ where scheduling0_.Start<@p0 and scheduling0_.[End]>=@p1',N'@p0 datetime,@p1 datetime',@p0='1753-01-01 20:00:00',@p1='1753-01-01 06:00:00'
(簡潔にするために選択リストを省略したことに注意してください)
パラメータのタイプと値がとして扱われていることに注意してくださいdatetime
。
これは、 https ://nhibernate.jira.com/browse/NH-2661およびhttps://nhibernate.jira.com/browse/NH-2660でクローズされた2つのNHバグと非常によく似ているようです。
使ってみましたがNHibernateUtil.TimeAsTimeSpan
、うまくいかなかったようです。それは私を驚かせたのとまったく同じクエリを生成しました。NH-2661で説明されている問題は、ユーザータイプにも存在し、修正されていないと思いますか?
NHibernatev3.3.1.400とNodaTime1.0.0-beta2を使用しています
json.net - Noda Time Instance 値が正しくデシリアライズされない
現在、RavenDB を使用して、Noda Time の Instant クラスを使用して日付を格納するオブジェクトを格納しています。
RavenDb は値を次のように保存します。
"ArrivalTime": { "Ticks": 13507658019037497 },
ただし、オブジェクトを照会すると、常に null であり、UNIX エポック時間の開始時に開始されます。
JsonConvert 属性を使用してみましたが、リーダーは常に Instant 型に対して null 値を返します。また、複数の属性を使用する場合、最初の属性のみを参照します。
RavenDbで野田時間を使用する必要がありますか、それとも通常の日時に固執する必要がありますか?
ありがとう