Определите, Активно ли Летнее время (DST) в Java для Указанной Даты

Инструменты, методологии, шаблоны, фреймворки и т. Д. Не могут заменить должным образом обученного программиста

Я устал от общения с людьми (в основном менеджерами), которые думают, что Последний инструмент, методология, шаблон или структура - это серебряная пуля, которая избавит от необходимости нанимать опытных разработчиков для написания своего программного обеспечения. Хотя, как консультант, который зарабатывает на жизнь, спасая рискованные проекты, я не должен жаловаться.

58
задан Lance Roberts 21 January 2010 в 22:02
поделиться

4 ответа

Это ответ для машины, на которой задается вопрос:

TimeZone.getDefault().inDaylightTime( new Date() );

Серверу, пытающемуся выяснить это для клиента, потребуется часовой пояс клиента. Причину см. В ответе @Powerlord.

Для любого конкретного часового пояса

TimeZone.getTimeZone( "US/Alaska").inDaylightTime( new Date() );
69
ответ дан 24 November 2019 в 18:51
поделиться
TimeZone tz = TimeZone.getTimeZone("EST");
boolean inDs = tz.inDaylightTime(new Date());
10
ответ дан 24 November 2019 в 18:51
поделиться

Вам нужно будет проделать немного больше работы, используя эти координаты, и выяснить, в каком часовом поясе они находятся. Как только вы узнаете, какой именно часовой пояс, метод isDayLight () будет

Например, вы не можете определить, является ли -0500 EST (восточное стандартное время США / Канады), CDT (центральное летнее время США / Канады), COT (время Колумбии), AST (стандартное время в акрах Бразилии) Время), ECT (Эквадорское время) и т. Д.

Некоторые из них могут поддерживать или не поддерживать летнее время.

3
ответ дан 24 November 2019 в 18:51
поделиться

Joda Time содержит методы обработки, которые будут вычислять смещения за вас. См. DateTimeZone.convertLocalToUTC (...)

Чтобы дополнить это, вам нужно будет найти текущий часовой пояс с информацией о широте / долготе. GeoNames предоставляет Java-клиент для своей веб-службы, а также простую структуру веб-запросов (например, http://ws.geonames.org/timezone?lat=47.01&lng=10.2 ])

1
ответ дан 24 November 2019 в 18:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: