3

DateTimeエンティティのプロパティをで作成する必要があるのはなぜDateTimeKind.Localですか?

たとえば、テーブルに挿入する前に、次のプロパティを次のように設定する必要があります。

someObject.DatePerformed = new DateTime(2012, 11, 19, 3, 3, 3, DateTimeKind.Local);

指定しないDateTimeKindと、正しく保存されません(2時間が追加されます)。これは、ローカルストレージエミュレーターとAzureアカウントの両方で発生します。ローカルマシンからGMT+2時間でクライアントアプリケーションを実行しています。

4

2 に答える 2

6

これはAzureの問題ではなく、DateTimeの動作方法です。オブジェクトのタイムゾーンを指定する必要がありますDateTime

ユーザーが異なるタイムゾーンにいる場合の問題を回避するために、すべてをUTCで保存し、実行時に現地時間に解決することをお勧めします。

それ以外の場合は、タイムゾーンを手動で変換するときに問題の経路をたどっています。

于 2013-03-05T13:48:03.137 に答える
3

AzureはUTC時間で実行されます。DateTime.Nowを使用している場合は、DateTime.AddHours()を使用します。

var utcOffset = 2;
var dateValue = new DateTime(2009, 3, 1, 12, 0, 0);
var localTime = dateValue.AddHours(utcOffset);

また...

var localValue = DateTime.Now.AddHours(utcOffset);
于 2013-03-05T14:13:06.283 に答える