2015-08-08 5 views
0

Если параметр даты равен 2015-08-08, в моей стране (часовой пояс = +7) в день месяца будет 8 - именно то, что я хочу. Но в стране моего партнера (часовой пояс = -8) день месяца равен 7.Получите день с даты возврата результата различия?

Может ли кто-нибудь сказать мне, почему?

Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 
int day = cal.get(Calendar.DAY_OF_MONTH); 
+0

Где и как преобразование «2015-08-08» в объект «Дата»? – RealSkeptic

+0

Я конвертирую его на сегодняшний день из объекта Json –

ответ

0

Calendar#getInstance использует часовой пояс по умолчанию, который по умолчанию, самостоятельно. Любые изменения, которые вы видите, отражаются на основе вашего местного часового пояса.

Если вы хотите изменить это, вы можете перейти в -Duser.timezone в качестве параметра в свою программу, чтобы гарантировать его запуск в определенном часовом поясе.

+0

Итак, не существует способа автоматически распознать часовой пояс системы, в которой работает код? –

+0

Часовой пояс системы - это часовой пояс, на который установлена ​​система. Если у вас две машины, настроенные на два разных часовых пояса, программа будет выполнена с использованием двух разных результатов часового пояса. – Makoto

Смежные вопросы