Java конвертирует текущую дату-время системы в количество секунд из эталонной эпохи - PullRequest
1 голос
/ 01 марта 2012

Я использую язык запросов Facebook (FQL) для получения дат пользователей. Мой FQL выглядит следующим образом.

SELECT post_id , message 
FROM stream 
WHERE source_id = me() 
AND actor_id = me() 
AND created_time > 1221596000 

Здесь я чувствую, что создал_ время в секундах.

Я использую Java. Может кто-нибудь сказать мне, как преобразовать текущую дату и время системы в create_time секунд в Java?

Ответы [ 3 ]

4 голосов
/ 01 марта 2012

System.currentTimeMillis() - это эпоха в миллисекундах. Итак, данная секунда - это тысяча миллисекунд. Вы можете легко преобразовать это, разделив 1000. Или мне чего-то не хватает?

0 голосов
/ 02 марта 2018

ТЛ; др

Instant.now() 
       .getEpochSecond()

1519944626

java.time

Современный подход использует классы java.time .

Instant

Класс Instant представляет момент на временной шкале в UTC с разрешением наносекунд (до девяти (9) цифр десятичного знака). доля).

Instant instant = Instant.now() ;  // Capture current moment in UTC.

Кол-из-эпохи

Вы можете определить количество полных секунд по эталону эпохи первого момента 1970 года в UTC, 1970-01-01T00: 00Z. Остерегайтесь потери данных: вы игнорируете любые доли секунды, которые могут находиться в значении вашего Instant объекта.

long secondsSinceEpoch = instant.getEpochSecond() ;  // Ignores any fractional second in your `Instant`. 

Синтаксический

Вы можете пойти в другом направлении, проанализировав такой отсчет от эпохи до Instant объекта.

Instant instant = Instant.ofEpochSecond( yourCountFromEpochGoesHere ) ;

О java.time

Фреймворк java.time встроен в Java 8 и более поздние версии. Эти классы вытесняют проблемные старые устаревшие классы даты и времени, такие как java.util.Date, Calendar, & SimpleDateFormat.

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

Чтобы узнать больше, см. Oracle Tutorial . И поиск переполнения стека для многих примеров и объяснений. Спецификация 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 и 7 в ThreeTen-Backport .
  • Android
    • Более поздние версии Android связывают реализации классов java.time.
    • Для более ранних версий Android проект ThreeTenABP адаптируется ThreeTen-Backport (упоминалось выше). См. Как использовать ThreeTenABP… .

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

0 голосов
/ 01 марта 2012

разделите это System.currentTimeInMillis() на 1000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...