2017-09-22 6 views
0

日付(時間なし)を格納するはずのDateTimeOffset(.NETにはDateクラスがないため)を持つエンティティがあります。EntityFramework、日付とUTC

問題は、データベースに「2017-9-1」などの日付を設定すると、「2017-08-31 22:00:00 + 00」(2時間以下)

私はそれが私のタイムゾーンのオフセットをUTCに適用すると思います。

"2017-9-1"をデータベースに保存するように保存したいと思います。私が最初に思ったのは、すべてのDateTimeOffetに2時間を追加することですが、それは偽の感じです。

これよりも日付を処理する方が良いでしょうか?

+0

正確に日付を「2017-9-1」に設定していますか? –

+0

[DateTimeOffset.Date](https://msdn.microsoft.com/en-us/library/system.datetimeoffset.date(v = vs.110).aspx)プロパティを使用します。 –

答えて

0

私は確信していませんが、フォーマット文字列の日付の前に "0:"を追加してください。あなたの現在の時間に置く必要があります。そうでなければ、デフォルトはUTCになります。

[DisplayFormat(DataFormatString = "{0:yyyy/dd/MM}")] 
+0

これはディスプレイに関するものなのでしょうか?私はデータベースに正確な日付を保存したいと思います。 – SuperJMN

+0

私はそうは思わない、それは私のdbに私の現在の時間を格納します。私は確かにチェックすることはできませんので、自分自身のATMのビットのビットを持っているが、私はそれもDBのために行くと思う。 – Will

0

あなたがMS SQLを使用している場合は、あなただけの日付を格納する日付変数を使用することができます。このよう

。エンティティDateTimeOffsetプロパティのデータベース型にアノテーションを付けることができます。

[Column(TypeName="date")] 
+0

私はPostgreSQLを使用しています。それはそれで動作しますか? – SuperJMN

+0

私はそう信じています... https://www.postgresql.org/docs/9.1/static/datatype-datetime.html – MrFitchet

関連する問題