Я хотел проверить разницу во времени до и после начала перехода на летнее время. Я использую JVM, где часовой пояс имеет некоторые проблемы с DST WRT бразильского времени. Я мог видеть выходные данные, где говорится, что 21 октября подпадает под летнее время, что неправильно, так как переход на летнее время начался 4 ноября. Я хотел бы видеть разницу во времени, которая составляет 1 час между 20 октября и 21 октября, которую я мог видеть в своем заявлении из-за проблемы с часовым поясом JRE. Есть ли способ, которым я могу достичь этого с помощью программы. Здесь ниже код, который я использовал, чтобы увидеть, находится ли дата под DST или нет.
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class Timezone
{
public static void main(String[] args) throws ParseException {
TimeZone TIMEZONE = TimeZone.getTimeZone("Brazil/East");
System.out.println("timeZone : " + TIMEZONE);
Calendar c = Calendar.getInstance(TIMEZONE);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
dateFormat.setTimeZone(TIMEZONE);
Date date = dateFormat.parse("2018-10-20T00:00:00");
c.setTime(date);
System.out.println("In dst " + c.getTimeZone().inDaylightTime(c.getTime()));
date = dateFormat.parse("2018-10-21T00:00:00");
c.setTime(date);
System.out.println("In dst " + c.getTimeZone().inDaylightTime(c.getTime()));
date = dateFormat.parse("2018-11-04T00:00:00");
c.setTime(date);
System.out.println("In dst " + c.getTimeZone().inDaylightTime(c.getTime()));
}
}
В дополнение к моему вопросу я смог выяснить, что переход на летнее время применяется с помощью моей вышеупомянутой программы. Я хотел бы кое-что, где это должно показать мне: 20 октября время - 9:00, тогда как то же самое время из-за перехода на летнее время сдвинуто на 1 час, то есть, 10:00. Есть ли способ добиться этого?
Ожидаемый результат:
timeZone : sun.util.calendar.ZoneInfo[id="Brazil/East"]
Time is: 21-10-2018 07:52:16
Фактический выход неисправен JVM:
timeZone : timeZone : sun.util.calendar.ZoneInfo[id="Brazil/East"]
Time is: 21-10-2018 08:52:30