.Kindがあります-DateTimeはタイムゾーンが異なることを知っています。なぜそれは私のためにこれを追跡しないのですか?
なぜならDateTime
根本的に壊れているからです(そしてもっとあります...)。IMOある種類の値を別の種類の値から減算しようとすると、文句を言うはずです。ただし、いいえ、各値で解釈されていない日付/時刻を使用するだけです。Kind
残念ながら、実際に気付く操作はほとんどありません。(を使用する場合TimeZoneInfo
、それらの操作はそれに注意します。)
Kind
.NET2.0にハッキングされました。それまでは、DateTime
値はそれがどのようなものであるかさえ知りませんでした-使用した場合:
dt = dt.ToLocalTime().ToLocalTime().ToLocalTime();
同じオフセット変更を数回適用します。BCLチームは、バイナリ表現でいくつかのスペアビットを見つけ、それをに使用しましたKind
。
基本的に、私はあなたの痛みを感じます。個人的には、このような操作で例外が発生した場合は、それを好みます。DateTime
ローカルからUTCを減算するDateTime
か、その逆はほとんど意味がありません、IMO。
完全に偏ったプラグとして、、、、、、およびの概念を分離し、無意味な算術を実行させないNodaTimeを使用できます。私たちの目的は、BCLよりも優れたAPIを提供することです。もちろん、それは必ずしも私たちが成功したことを意味するわけではありません:)Instant
LocalDate
LocalTime
LocalDateTime
OffsetDateTime
ZonedDateTime