Java конвертирует объект отметки времени в формат даты - PullRequest
0 голосов
/ 25 апреля 2019

В моем приложении для Android я показываю List<Object>, он содержит String , int и Timestamp значения, и я не знаюкакой элемент является меткой времени.
Теперь это выглядит так: Метка времени (секунды = 1556208432, наносекунды = 754000000)

Я хочу разобрать это в читаемый формат даты.
Воткод, который я попробовал:

TextView t2 = view.findViewById(android.R.id.text2);
String tS2 = String.valueOf(values.get(position));

if(tS2.contains("Timestamp(seconds=")) {
    long ts = Timestamp.parse(tS2);
    Date date = new Date(ts);
    Log.d(TAG, "date: "+date);
} else {
    t2.setText(tS2);
}

и проанализировать его с SimpleDateFormat, например:

String myFormat = "yyyy MMM dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.ENGLISH);
t2.setText(sdf.format(something));

Я получаю эту ошибку:

java.lang.IllegalArgumentExceptionat java.util.Date.parse

EDIT1:

Умирает с ошибкой ниже, когда попадает в часть Date.

Object time = values.get(position);
com.google.firebase.Timestamp ts = (com.google.firebase.Timestamp) time;
String str = ts.toString();
Date date = new Date(Long.parseLong(str));

java.lang.NumberFormatException: для входной строки: «Метка времени (секунды = 1556208432, наносекунды = 754000000)»

1 Ответ

1 голос
/ 25 апреля 2019

Вы конвертируете timestamp в string, который не преобразует значение, которое он содержит, в строку, а описывает сам объект .

Чтобы получить дату метки времени Firebase, просто наберите toDate().

Для получения дополнительной информации проверить это

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