У меня болит голова из-за значений времени и нескольких часовых поясов.
Я сохраняю новые значения DateTime во времени UTC, но у меня возникает проблема, когда я пытаюсь изменить их с помощью LinqDataSource и GridView.
Я могу легко показать правильное время в
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# TimeManager.ToLocalTime((DateTime)Eval("OrderDate")) %>' />
</ItemTemplate>
В настоящее время это добавит 1 час к времени UTC, хранящемуся в БД.
Однако привязка к источнику нелегка. Привязка ("OrderDate") не может быть изменена, как TimeManager.ToGlobalTime ((DateTime) Bind ("OrderDate")).
Я думал об использовании события OnUpdating LinqDataSource для обновления значения до глобального времени, но что, если пользователь изменил другие поля, а не поле даты? Каждый раз, когда он обновляет запись, значение времени будет меньше на один час.
Сравнение старых и новых значений также не очень хорошо, потому что пользователь может изменять часть даты даты и времени, а не время, на которое влияют часовые пояса?
Если бы у меня был способ показать местное время во всех состояниях gridview, я мог бы легко использовать OnUpdating из LinqDataSource.
Пожалуйста, поделитесь своими мыслями ...