- У моего сервера GMT + 7, поэтому, если я перехожу на другой сервер, есть другой часовой пояс GMT, вся дата, хранящаяся в db, будет неправильной?
- Да Q1 правильно, как о я буду хранить дату в GMT + 0 часовой пояс и отобразить его в пользовательских часовом поясе, выбранной каждым членом
- Как я получаю дату с GMT + 0 в Java
ответ
1) Цитирую из Javadocs, Java миллисекунды метки времени являются
разница, измеряется в миллисекундах, между текущим временем и в полночь 1 января 1970 UTC.
Следовательно, поскольку временная метка UTC/GMT, если вы храните ее в базе данных, эта дата будет правильной независимо от часового пояса сервера.
2) Форматирование метки времени для отображения в зависимости от часового пояса будет правильным подходом.
3) Создание нового экземпляра java.util.Date и вызов getTime() предоставит вам временную метку для GMT + 0 на Java.
По по умолчанию, когда вы получаете дату в java в текущем часовом поясе, вы можете использовать класс TimeZone для получения часового пояса, в течение которого выполняется ваше системное время. Большинство баз данных поддерживают, что даты могут быть сохранены с часовым поясом, что, вероятно, будет правильным способом сделайте это, но точно, какой формат может зависеть от используемой вами базы данных.
Чтобы добавить к точке метки, как только у вас есть java.util.Date, вы можете «преобразовать» ее в любой часовой пояс (выбранный пользователем). Вот пример кода, в Groovy (будет работать в Java с небольшими модами):
// This is a test to prove that in Java, you can create ONE java.util.Date
// and easily re-display it in different TimeZones
fmtStr = "MM/dd/yyyy hh:mm aa zzz"
myDate = new java.util.Date()
sdf = new java.text.SimpleDateFormat(fmtStr)
// Default TimeZone
println "Date formatted with default TimeZone: " + sdf.format(myDate)
// GMT
sdf.setTimeZone(TimeZone.getTimeZone("GMT"))
println "Date formatted with GMT TimeZone: " + sdf.format(myDate)
// America/New_York
sdf.setTimeZone(TimeZone.getTimeZone("America/New_York"))
println "Date formatted with America/New_York TimeZone: " + sdf.format(myDate)
// PST
sdf.setTimeZone(TimeZone.getTimeZone("PST"))
println "Date formatted with PST TimeZone: " + sdf.format(myDate)
Я хотел бы предложить, что вы используете дату только в качестве «владельца» и предлагаю использовать экземпляры календаря вместо этого. Чтобы получить календарь в время GMT зоне просто используйте:
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00"))
календарный обеспечат большую пользу, когда вы работаете с временем и датой. Например, добавление час это просто:
cal.add(Calendar.HOUR, 1);
Наконец, когда требуется Дата вы просто использовать это:
Date date = cal.getTime();
Для Q3, рекомендуется использовать класс ZonedDateTime.
- 1. Java-преобразовать объект Time (GMT) в String (GMT + 1)
- 2. GMT Преобразование времени в Java
- 3. Конвертировать GMT в BST Java
- 4. gmt или без gmt
- 5. GMT GMT как UTC?
- 6. Java список магазин массива
- 7. Java Nashorn магазин Функция
- 8. как преобразовать дату в GMT в Java
- 9. Преобразование Java Time в GMT/Formating
- 10. Java формат даты - GMT +04: 00
- 11. Конвертировать GMT в IST в java?
- 12. UTC vs. GMT - Java против .Net
- 13. Заставить часовой пояс Java как GMT/UTC
- 14. Определение времени GMT или BST в Java?
- 15. Как работают идентификаторы GMT в Java TimeZone?
- 16. Java магазин Double в Integer []
- 17. магазин упорядочение Перечисления в Java
- 18. Магазин (UniqueString, String) в java
- 19. Javascript World Timezone Разница с GMT GMT
- 20. GMT-0400 и GMT-0500 смена
- 21. Как разобрать «GMT + часы: минуты» или «GMT-часы: минуты» с помощью SimpleDateFormat в Java (Android)
- 22. Почему есть 26 GMT смещения?
- 23. Query Hive Мета магазин
- 24. Магазин
- 25. Android-студийный магазин-магазин массивов онлайн
- 26. Timezone преобразования (GMT по Гринвичу)
- 27. Как использовать GMT в postgresql?
- 28. NoStore не устанавливает Cache-Control в магазин-магазин
- 29. магазин 2D-массив в другой массив - Java
- 30. магазин функция на сервере с Java - MongoDB