Обычно принято хранить все значения даты и времени в вашей БД в формате GMT / UTC.
Для тех, кто хочет отобразить значение UTC для определенного часового пояса для разных пользователей приложения, например, как упоминалось в wilpeck, предлагается определить локаль конечных пользователей и:
- при сохранении сохраните локаль со значением даты UTC
- при чтении отображать значение UTC по местному времени со связанным значением языкового стандарта
EDIT:
Например:
Возможно, у вас есть таблица с полем StartDateTime , поэтому для поддержки нескольких часовых поясов у вас может быть дополнительное поле StartDateTimeOffset . Если клиент находится в зоне стандартного индийского времени (IST), у вас может быть значение datetime 2009/10/13 14:45, то есть 2009/10/13 09:15 в UTC. Таким образом, вы должны сохранить значение UTC (2009/10/13 09:15) в поле StartDateTime и сохранить смещение +05: 30 в поле StartDateTimeOffset . Теперь, когда вы читаете это значение обратно из БД, вы можете использовать смещение для преобразования значения даты и времени UTC (2009/10/13 09:15) обратно в местное время 2009/10/13 14: 45.