Как получить точное время (миллисекунды) с часовым поясом DST в Java

1

У меня есть простая проблема:

TimeZone fromTimeZone = TimeZone.getTimeZone("America/Santiago");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 45);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(calendar.getTime() + " |Mili: " + calendar.getTimeInMillis());

Результат: (Мой часовой пояс - это ИКТ)

Wed Apr 01 19:45:00 ICT 2015 |Milisecond: 1427892300000

Проблема заключается в следующем: календарь возвращает неправильное время для этого часового пояса в день DST. Часовой пояс "Америка/Сантьяго" должен быть UTC-3 на данный момент (ref: http://www.timeanddate.com/worldclock/chile/santiago.). Он должен показать:

Wed Apr 01 18:45:00 ICT 2015 |Milisecond: 1427888700000
  • 0
    Может кто-нибудь помочь мне?
Теги:
timezone
dst

1 ответ

0

Вы не применили часовой пояс fromTimeZone к календарю.

  • 0
    Можете ли вы сказать мне, как получить фактическую милисекунду для этого часового пояса?
  • 0
    установить часовой пояс calendar.setTimeZone(fromTimeZone); до calendar.getTimeInMillis()
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню