時間の値と複数のタイム ゾーンで頭が痛いです。新しい DateTime 値を UTC 時間で保存していますが、LinqDataSource と GridView を使用して変更しようとすると問題が発生します。
正確な時刻を簡単に表示できます
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# TimeManager.ToLocalTime((DateTime)Eval("OrderDate")) %>' />
</ItemTemplate>
現在、これは DB に保存されている UTC 時間に 1 時間を追加します。
ただし、ソースにバインドするのは簡単ではありません。Bind("OrderDate") は、TimeManager.ToGlobalTime((DateTime)Bind("OrderDate")) のように変更できません。
LinqDataSource の OnUpdating イベントを使用して値をグローバル時間に更新することを考えていましたが、ユーザーが日付フィールドではなく他のフィールドを変更した場合はどうなりますか? 彼が記録時間を更新するたびに、1 時間分の値が小さくなります。
ユーザーは日時ではなく日時の日付部分を変更できるため、古い値と新しい値を比較することもできません。これはタイムゾーンの影響を受けますか?
グリッドビューのすべての状態で現地時間を表示する方法があれば、LinqDataSource の OnUpdating を簡単に使用できます。
あなたの考えを共有してください...