Использовать смещение или rawoffset для вычисления времени?

Вопрос:

Я использую javascript-библиотеку, которая полагается на смещение часового пояса, чтобы установить текущее время. Смещение устанавливается на сервере с помощью Java. Этот код:

Во время запуска этого кода (17:27):

package com.fmr.fc.portlet.globalclock;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;

public class TestDate {

public static void main(String args[]){

SimpleDateFormat df2 = new SimpleDateFormat("hh:mm a (E)");
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");

Calendar calendar = Calendar.getInstance(tz);

df2.setTimeZone(tz);
System.out.println(df2.format(calendar.getTimeInMillis()));
System.out.println(df2.format(calendar.getTime()));

System.out.println(tz.getOffset(calendar.getTimeInMillis())/ 1000.0
/ 60.0
/ 60.0 + "");

System.out.println(tz.getRawOffset() / 1000.0
/ 60.0
/ 60.0 + "");

}

}

Выход:

09:27 AM (Wed)
09:27 AM (Wed)
-7.0
-8.0

Мне кажется, что я должен использовать исходное смещение, но метод getOffset добавляет дневное свечение к необработанному смещению для вычисления смещения, поэтому он читает -7 вместо -8.

-8 является правильным, так как я правильное время для “America/Los_Angeles” – 09:27 (ср.): -8 часов IST. Но кажется неправильным, что я также не учитываю экономию летнего времени, хотя добавление 1 к -8 является -7: что является неправильным временем?

Должен ли я использовать rawoffset для определения текущего часа? Будут ли возникать проблемы в какой-то момент времени, когда отключается летнее время?

В настоящее время я не могу использовать JodaTime в базе кода.

Оцените статью
TechArks.Ru
Добавить комментарий