Один запрос для проверки значений парных переменных (до и после) в SQL Server

tl; dr
Instant.ofEpochSecond( 1_280_512_800L )

2010-07-30T18: 00: 00Z

blockquote>

java.time

новая инфраструктура java.time, встроенная в Java 8, а затем является преемником Joda-Time.

Эти новые классы включают удобный заводский метод для преобразования количества целых секунд с эпохи. Вы получаете Instant, момент на шкале времени в UTC с разрешением до наносекунд.

Instant instant = Instant.ofEpochSecond( 1_280_512_800L );

instant.toString (): 2010-07-30T18: 00: 00Z

blockquote>

Посмотрите, что запускается в реальном времени на IdeOne.com .

Asia/Kabul или Asia/Tehran часовых поясах?

Вы сообщили о том, чтобы получить значение в дневное время 22:30 вместо 18:00 здесь. Я подозреваю, что ваша утилита PHP неявно применяет часовой пояс по умолчанию для настройки с UTC. Мое значение здесь UTC, обозначенное Z (сокращение от Zulu, означает UTC). Любая вероятность того, что ваша ОС или PHP установлена ​​на Asia/Kabul или Asia/Tehran часовые пояса? Я полагаю, что вы сообщаете IRST в своем выпуске, что, по-видимому, означает время в Иране. В настоящее время в 2017 году это единственные зоны , работающие с летним временем, которое составляет четыре с половиной часа перед UTC.

Укажите правильное имя часового пояса в формате continent/region, например America/Montreal , Africa/Casablanca или Pacific/Auckland. Никогда не используйте аббревиатуру 3-4 буквы, например EST или IST или IRST, поскольку они не истинные часовые пояса, не стандартизированы и даже не уникальны (!).

Если вы хотите видеть ваш момент через объектив часового пояса конкретного региона, примените ZoneId, чтобы получить ZonedDateTime . Тем не менее тот же одновременный момент, но рассматривается как другое время настенных часов .

ZoneId z = ZoneId.of( "Asia/Tehran" ) ;
ZonedDateTime zdt = instant.atZone( z );  // Same moment, same point on timeline, but seen as different wall-clock time.

2010-07-30T22: 30 + 04: 30 [Азия / Тегеран]

blockquote>

Преобразование из java.time в устаревшие классы

Вы должны придерживаться новых классов java.time.

java.util.Date date = java.util.Date.from( instant );

Joda-Time

UPDATE: проект Joda-Time теперь находится в сервисе mode , при этом команда советует перейти на классы java.time .

FYI, конструктор для Joda-Time DateTime подобен: умножьте на тысячу, чтобы создать long (а не int !).

DateTime dateTime = new DateTime( ( 1_280_512_800L * 1000_L ), DateTimeZone.forID( "Europe/Paris" ) );

Лучше избегать печально известных проблемных классов java.util.Date и .Calendar. Но если вы должны использовать дату, вы можете конвертировать из Joda-Time.

java.util.Date date = dateTime.toDate();

О java.time

java.time framework встроен в Java 8 и более поздние версии. Эти классы вытесняют неприятные старые классы времени legacy , такие как java.util.Date , Calendar и & amp; SimpleDateFormat .

Проект Joda-Time , теперь в режиме обслуживания , советует перейти на java.time .

Чтобы узнать больше, см. учебное пособие Oracle . И поиск Stack Overflow для многих примеров и объяснений. Спецификация JSR 310 .

Вы можете обменивать объекты java.time непосредственно с вашей базой данных. Используйте драйвер JDBC , соответствующий JDBC 4.2 или более поздней версии. Нет необходимости в строках, нет необходимости в классах java.sql.*.

Где получить классы java.time?

  • Java SE 8 , Java SE 9 и более поздние версии. Часть стандартного Java API с интегрированной реализацией. Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и Java SE 7 Большая часть функций java.time портирована на Java 6 & amp; 7 в ThreeTen-Backport .
  • Android Более поздние версии реализаций пакетов Android классов java.time. Для более ранних Android (& lt; 26) проект ThreeTenABP адаптирует ThreeTen-Backport (упомянутый выше). См. Как использовать ThreeTenABP ... .

Проект ThreeTen-Extra расширяет java.time с дополнительными классами. Этот проект является доказательством возможных будущих дополнений к java.time. Здесь вы можете найти полезные классы, такие как Interval , YearWeek , YearQuarter и more .

0
задан Karthik S 1 January 2019 в 05:40
поделиться