問題タブ [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.
timezone - NodaTimeのIANA/Olsonタイムゾーンのリストをどのように入力する必要がありますか?
アプリケーションでNodaTimeを使用していますが、ユーザーがドロップダウンリストからタイムゾーンを選択する必要があります。次のソフト要件があります。
1)リストには、実際の場所の現在および近い将来に合理的に有効な選択肢のみが含まれています。履歴、あいまい、および一般的なタイムゾーンは除外する必要があります。
2)リストは、最初にUTCオフセットでソートし、次にタイムゾーン名でソートする必要があります。これにより、ユーザーにとって意味のある順序でそれらが配置されることを願っています。
私は次のコードを書きました。これは確かに機能しますが、私が求めているものを正確に持っていません。フィルタはおそらく調整する必要があります。オフセットは、現在のオフセットではなく、ベース(非dst)オフセットを表すようにします。
提案?推奨事項?
timezone - タイム ゾーン ID をデータベースに保存するのは安全ですか、それとも変更できますか?
NodaTime を使い始めたばかりです。私のアプリでは、ユーザーがイベントを作成し、タイム ゾーンを選択します。BCL (Windows) のタイム ゾーン リストを使用するか、TZDB (Olson) のリストを使用するかに関係なく (それらを混在させないでください!)、後でタイム ゾーンを再作成できるように、タイム ゾーンの ID をデータベースに永続化する必要があります。 -意識時間。
タイムゾーン ID がやや恣意的で、ISO 標準ではないように見えることを考えると、今後 GetZoneOrNull を呼び出すときに常にその ID を見つけることに頼ることができますか?
GetZoneOrNull メソッドは、そのような事態に対する防御であると想定しています。つまり、独自の Ids コレクションに存在しない ID が渡された場合です。私の質問は、ID が Ids コレクションから取得された場合、GetZoneOrNull が今後 null を返さないことを信頼できますか?
しかし、ID が履歴から消える可能性がある場合、それに対処するための最善の戦略は何ですか?
nodatime - Noda Timeで複数のフォーマットを解析するには?
名前空間のさまざまな*Pattern
型を使用して、値の書式設定と解析を行う Noda Time の処理が気に入っています。NodaTime.Text
ただし、ユーザー入力は多くの場合、単一の形式ほど規則的ではありません。たとえば、私たちのアプリは時間形式を使用しています"h:mm tt"
が、次の形式のいずれかでユーザー入力を解析できるようにしたいと考えています。
h:mm tt
h:mmtt
(立つ瀬がない)h:mm t
h:mmt
(立つ瀬がない)h tt
hh:mm
- 等々...
Noda Time を使用して、さまざまな形式の入力を解析する方法はありますか?
c# - オルソンのタイムゾーンリストをUIの読み取り可能な形式に縮小するものはありますか(Googleカレンダーのように)?
ユーザーにタイムゾーンの選択を求めるアプリを書いています。タイムゾーンのリストをOlsonデータベースから(NodaTime経由で)取得していますが、少なくとも私の目的では、これは多くの冗長なエントリを含む大規模なリストです。
Googleカレンダーでイベントを作成すると、比較的小さなリストからタイムゾーンを選択し、必要に応じて国別に並べ替えることができます。この人がやっていることである、別のデータベースを作成することなく、それと同じくらい簡単なことを達成できるようにしたいと思います 。
これをフロントエンドのC#MVCとJavaScriptで記述しているので、ドロップダウンで表示できるユーザーフレンドリーな形式の縮小リストを提供するこれらの言語のいずれかのライブラリを探しています。ハイパーリンクに示されている例のように、そのようなものはありますか、それとも自分で作成して定期的に最新の状態に保つ必要がありますか?
c# - PropertyGrid で NodaTime クラスをどのように使用しますか?
System.DateTime の代わりに NodaTime クラスを使用するように一部のアプリケーション コードを変換しています。私のアプリケーションの一部では、PropertyGrid コントロールを使用して、ユーザーが LocalDate と Instant の両方を含むクラスを編集できるようにしています。何も変更しない場合、PropertyGrid はプロパティを正常に表示しますが、編集することはできなくなります。ユーザーがこれらのフィールドを編集できるようにする最善の方法は何ですか?
説明のために、表示および編集したいもののタイプの代表としてこのクラスを使用できます。
json.net - 例外を取得せずに Json.net を使用して NodaTime.Instant で辞書を逆シリアル化する方法は?
json.netを使用して NodaTime.Instance を使用して辞書を jsonにシリアル化すると正常に動作しますが、逆シリアル化すると Newtonsoft.Jsonがスローされます。JsonSerializationException。以下のテストは問題を示しています。
DeserializeObject は次をスローします。
Newtonsoft.Json.JsonSerializationException : 文字列 '2012-01-02T03:04:05Z' を辞書キー タイプ 'NodaTime.Instant' に変換できませんでした。文字列からキー型オブジェクトに変換する TypeConverter を作成します。行 1、位置 24。----> Newtonsoft.Json.JsonSerializationException : 値「2012-01-02T03:04:05Z」を「NodaTime.Instant」型に変換中にエラーが発生しました。行 1、位置 24。 ----> System.Exception : System.String から NodaTime.Instant にキャストまたは変換できませんでした。
補足として、DateTime のディクショナリの逆シリアル化は正常に機能します。StringにはDateTimeのコンバーターがあるためだと思います。
c# - tz データベースのタイム ゾーン名を含むユーザー入力の解析
Noda Time でユーザー入力を解析しようとしています。
入力:
- 形式の日付
YYYY-MM-DD
- 時間
- 分
- tz データベースのタイム ゾーン名 (Google のタイム ゾーン API から返されます)
このデータを、同じく tz データベースのタイム ゾーン名に基づいて、UTC および他のタイム ゾーンに変換する必要があります。
現在、私はLocalDateTime
とのZonedDateTime
違いを理解しようとしていますが、(できれば) これを理解する前に、誰かがこれを行う方法を示すことができるでしょう。
c# - データベースとの間の DateTimeZone
Jon Skeet (およびその他) による Noda Timeフレームワークの使用方法を理解しようとしています。
DateTimeZoneを保存してデータベースから取得するにはどうすればよいですか。データベースに設定するのはIdプロパティの値かもしれないと思ったのですが、DateTimeZone は抽象クラスなので、Id から DateTimeZone を作成するにはどうすればよいでしょうか。
c# - Instant.Now for NodaTime
Jon Skeet (およびその他) によるNoda Timeフレームワークの使用方法を理解しようとしています。
現在(インスタント)を保存しようとしています。インスタントは長いティックから作成されますが、現在のティックの現在のカウントは何ですか?
それは...ですか:
そして、または?
それらは同等ですか、私はこれを正しくやっていますか?
PS、Jon の回答がこれなら、Instant.Now プロパティを提案したいと思います。
PS2 タイトルにタグが含まれていることは知っていますが、「Instant.Now」という短いタイトルを付けることはできません。
c# - Noda Timeで、LocalDateとLocalTimeを使用してLocalDateTimeを作成する方法
LocalDateとLocalTimeがあり、それらからLocalDateTime構造体を作成したいと思います。次の拡張メソッドが最速だと思いましたが、あいまいな理由で、フィールドlocalTime.TickOfMillisecondは現在のバージョンのAPIには存在しません。したがって、機能しません。
だから、私は使用するためにその間に立ち往生していますか?
アドバイスをいただければ幸いです。