Обработка часового пояса в веб-приложении
В нашем веб-приложении нам нужно показать и ввести информацию о дате и времени для разных стран в разных часовых поясах. Сейчас мы поддерживаем отдельный веб-сервер и отдельную базу данных (oracle 11g) для каждой страны.
Мы планируем объединить все в один портал с единой базой данных (oracle 11g). Этот портал должен фиксировать / отображать дату и время в местном часовом поясе пользователя.
До сих пор я искал об этом, я получил ниже предложение.
1) установить часовой пояс веб-сервера и сервера базы данных в UTC и при получении данных (данных и времени) конвертировать в часовой пояс пользователя.
Если вы предлагаете такой подход, пожалуйста, уточните следующие конкретные вопросы.
Большую часть времени мы собираем только дату, требуется ли фиксировать дату и время вместе с часовым поясом?
при сохранении даты и времени, когда нам нужно преобразовать локальный часовой пояс пользователя в UTC в javascript / java / oracle?
при получении даты и времени, когда нам нужно конвертировать UTC для пользователя
сам запрос местного часового пояса / java / скрипт java?
во многих местах у нас есть отчеты для отображения на основе столбца даты, такие как
Сегодня / текущий месяц / диапазон дат. Как мы можем справиться с этим (вход - локальный часовой пояс пользователя - база данных в формате UTC)?
2) захватить дату и время в местном часовом поясе пользователя и в формате UTC. Хранящиеся в виде отдельных столбцов, локальный часовой пояс пользователя будет использоваться для целей отображения, а UTC будет использоваться для бизнес-логики.
Если вы предлагаете такой подход, пожалуйста, уточните следующие конкретные вопросы.
Является ли обычной практикой хранение локального часового пояса пользователя и UTC?
В каком столбце я должен проверить условие при получении отчетов для отображения на основе столбца даты, такого как сегодня / текущий месяц / диапазон дат?
какой тип данных мы должны использовать для столбца даты
(дата / отметка времени / отметка времени с часовым поясом / отметка времени с местным временем
зона)?
заранее спасибо