Intereting Posts
Как отключить кнопку внутри AlertDialog? Gradle: Выполнение не выполнено для задачи ': processDebugManifest' Как обновить Xamarin для Android в среде Visual Studio 2015 Пример сервера Java GCM Как я могу добавить файлы .so в проект библиотеки андроидов, используя gradle 0.7+ Android: используйте значок в качестве кнопки «Назад», не перезагружая предыдущую активность. Развернуть все дочерние элементы в расширенном виде списка Отображение диалогового окна Android Custom Alert после изменения версии сборки Не найдено никаких совместимых целей Как настроить код, создаваемый при использовании «Surround with try / catch»? Какие криптоалгоритмы поддерживают Android? Отключить звук нажатия кнопки в android Зная, когда Firebase завершил вызов API? Android Studio Update 0.4.0 не удалось найти buildConfig () Каков наилучший способ загрузки 1000+ записей на сервер, который также содержит изображения для каждой записи из приложения iOS / Android?

Jodatime, как узнать, включен ли дневной свет

У меня есть API, которому нужен часовой пояс. Напр. Если я нахожусь в Калифорнии, мне нужно пройти -7 к ней, когда переход на летнее время (Калифорния, PDT – GMT-7) и -8, когда переход на летнее время отключен. Но я не могу определить способ узнать, включено ли в текущую дату, включено или выключено летнее время.

Date date1 = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(date1); double[] coords = db.getCoords(id1); double latitude = coords[0]; double longitude = coords[1]; double timezone = -7; /* For Pacific daylight time (GMT - 7)*/ ArrayList<String> Times = Class.foo(cal, latitude, longitude, timezone); 

Я установил JodaTime, и даже там я не могу найти способ. Пожалуйста, предложите, чтобы у родного java или jodatime есть способ сделать это.

Solutions Collecting From Web of "Jodatime, как узнать, включен ли дневной свет"

Когда вы создаете DateTime с JodaTime, вам не нужно передавать смещение. Вместо этого пропустите часовой пояс. Он позаботится о том, чтобы определить правильное смещение, включая рассмотрение DST.

 // First get a DateTimeZone using the zone name DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); // Then get the current time in that zone. DateTime dt = new DateTime(zone); // Or if you prefer to be more explicit, this syntax is equivalent. DateTime dt = DateTime.now(zone); 

ОБНОВИТЬ

Я все еще не уверен, что вы спрашиваете, но, возможно, вы ищете один из них:

 // To get the current Pacific Time offset DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); int currentOffsetMilliseconds = zone.getOffset(Instant.now()); int currentOffsetHours = currentOffsetMilliseconds / (60 * 60 * 1000); // To just determine if it is currently DST in Pacific Time or not. DateTimeZone zone = DateTimeZone.forID("America/Los_Angeles"); boolean isStandardOffset = zone.isStandardOffset(Instant.now()); boolean isDaylightOfset = !isStandardOffset;