В настоящее время я работаю над веб-приложением C# с базой данных сервера sql-сервера. У меня есть некоторые проблемы, связанные с датами, которые мне нужны для разработки.как обрабатывать часовые пояса и даты в многостраничном/лингвальном приложении
Приложение размещено на сервере и сервере баз данных в GMT. Пользователи распространяются по трем различным часовым поясам CEST, MSK, ALMT с возможностью вывести сайт в другие страны с течением времени.
В коде в настоящее время я использую DateTime.Now и GETDATE() в SQL, а с расположением серверов это GMT.
Вопрос заключается в том, какую форму должны хранить данные базы данных в базе данных, принимая во внимание разные культуры и т. Д. Должны ли они быть датами utc? Как следует обрабатывать следующее? Существует ли стандартная практика?
Благодарим за эту информацию. Если я буду считать, что я использую utc datetime во всем мире, как я могу преобразовать его в текущий часовой пояс, основанный на культуре приложений? – amateur
@amateur: вам нужно получить локальный часовой пояс пользователя (который действительно не зависит от культуры, я могу быть китайцем, но живу в Париже) в качестве строки и использовать код, который я даю. См. Также ['TimeZoneInfo.GetSystemTimeZones'] (http://msdn.microsoft.com/en-us/library/system.timezoneinfo.getsystemtimezones.aspx). – Jon