В зависимости от URL-адреса запроса мне нужно преобразовать дату в другой запрошенный часовой пояс и вернуть дату и время в виде строки. Я использую java 8 с весенней загрузкой и монго 3.2.
Итак, внутри метода обслуживания я сначала устанавливаю часовой пояс, как показано ниже,
TimeZone.setDefault(TimeZone.getTimeZone(TIME_ZONE))
Но я заметил, что это изменит часовой пояс всего java-приложения. Таким образом, даже при выходе из метода часовой пояс останется часовым поясом, который я установил ранее.
Поэтому вместо уровня метода setDefault
я специально установил его в SimpleDateFormat
, как показано ниже,
(назначение — это класс документа Assignmet, имеющий java.util.Date
в качестве свойства с именемassignEndDate, которое сопоставляется с коллекцией mongodb. В mongo db НазначениеEndDate хранится как UTC)
java.text.DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy'T'HH:mm:ss.SSS");
formatter.setTimeZone(TimeZone.getTimeZone(timezone));
Date assignmentEndDate = assignment.getAssignmentEndDate();
formatter.format(assignmentEndDate);
Таким образом, он не изменит часовой пояс на уровне приложения. Это правильный подход для такого сценария?
java.util.Date
и не можете использовать пакетjava.time
? - person Joe C   schedule 03.12.2016