java.time
Я хотел бы предложить современный ответ.
String ts = String.valueOf(Instant.now().getEpochSecond());
System.out.println(ts);
Вывод при запуске только сейчас:
1543320466
Несмотря на то, что деление на 1000 не станет неожиданностью для многих, выполнение ваших собственных преобразований времени может быть затруднено для довольно быстрого чтения, поэтому это плохая привычка, когда вы можете избежать этого.
Класс Instant
, который я использую, является частью java.time, современного Java-API даты и времени. Он встроен в новые версии Android, API уровня 26 и выше. Если вы программируете для более старого Android, вы можете получить бэкпорт, см. Ниже. Если вы не хотите этого делать, понятно, что я по-прежнему буду использовать встроенное преобразование:
String ts = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
System.out.println(ts);
Это так же, как ответ от sealskej. Вывод такой же, как и раньше.
Вопрос: Могу ли я использовать java.time на Android?
Да, java.time прекрасно работает на старых и новых устройствах Android. Для этого требуется как минимум Java 6 .
- В Java 8 и более поздних версиях и на более новых устройствах Android (начиная с уровня API 26) встроен современный API.
- В Java 6 и 7 получите ThreeTen Backport, бэкпорт новых классов (ThreeTen для JSR 310; см. Ссылки внизу).
- На (более старых) Android используется версия Android ThreeTen Backport. Это называется ThreeTenABP. И убедитесь, что вы импортируете классы даты и времени из
org.threeten.bp
с подпакетами.
Ссылки