Получение текущего timestamp в Android: методы и форматы

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы получить актуальную временную отметку, воспользуйтесь методом System.currentTimeMillis(), который возвращает количество миллисекунд, прошедших с момента начала эпохи Unix.

Java
Скопировать код
long timestampMillis = System.currentTimeMillis(); // Временная отметка прямо сейчас
long timestampSeconds = timestampMillis / 1000;   // Секунды с начала эпохи Unix

Чтобы представить временную отметку в понятном формате, используйте класс SimpleDateFormat:

Java
Скопировать код
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
String formattedDate = sdf.format(new Date(timestampMillis)); // Форматируем временную отметку

Если требуется высокая точность и стабильность, например, для временно-зависимых приложений, рассмотрите использование SystemClock.elapsedRealtime().

Кинга Идем в IT: пошаговый план для смены профессии

Получение временной отметки в секундах, используя Unix-время

У вас есть прямой доступ к Unix-времени, которое определяется как количество секунд, прошедших с первых секунд 1970 года по UTC, без учета специальных коррекционных секунд.

Быстрое преобразование в Unix-время

Java
Скопировать код
long unixTimeSeconds = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()); // Преобразуем миллисекунды в секунды     
String unixTimeString = Long.toString(unixTimeSeconds); // Переводим в строку для удобства использования

Работа с часовыми поясами

При работе с SimpleDateFormat не забывайте учитывать часовые пояса – используйте класс TimeZone, чтобы гарантировать точное соответствие временных отметок.

Обработка исключений

Обязательно обрабатывайте исключения при форматировании и анализе дат. Всегда оборачивайте операции над временем в блок try-catch для обеспечения стабильности работы приложения.

Визуализация

Представим временную отметку так, будто это был бы дневник времени приложения Android:

Markdown
Скопировать код
Дневник времени Android 🕰️:
| Запись моментов         |
| ---------------------- |
| 📆⏰ Уникальная временная отметка |

Продвинутое использование

Рассмотрим несколько советов и подходов для работы с временными отметками.

Отслеживание изменений системного времени

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

Альтернативы SimpleDateFormat

Используйте класс java.time.format.DateTimeFormatter из Java 8 Time API в качестве потокобезопасных альтернатив. Он поддерживается на Android.

Использование SystemClock.elapsedRealtime()

Для измерения интервалов и прошедшего времени используйте метод SystemClock.elapsedRealtime(), так как он обеспечивает монотонные часы, не подверженные изменениям системного времени.

Полезные материалы

  1. System | Android Developers — Официальная документация по работе с системным временем для Android.
  2. java – Sort a Map<Key, Value> by values – Stack Overflow — Обсуждения по теме работы с временными отметками, несмотря на их заблуждающее название.
  3. SimpleDateFormat (Java Platform SE 7 ) — Детальная информация по работе с форматированием дат.
  4. Tutorial | DigitalOcean — Руководство по работе с датой и временем в Java.
  5. java.lang.System.currentTimeMillis java code examples | Tabnine — Примеры использования метода System.currentTimeMillis().
  6. java.sql.Timestamp#valueOf — Примеры использования метода Timestamp.valueOf в приложениях на Java.