У меня есть статистика c ArrayList, заполняемая при запуске из Firebase для хранения различных значений. Одно из полей FB, которое мне нужно сохранить, это Timestamp.
Мне нужно сохранить Timestamp в моем массиве, но затем отобразить его позже в удобочитаемом формате Date.
Инициализировать ArrayList:
static ArrayList<String> suspectedValues = new ArrayList();
Получить метку времени из FB:
Timestamp dtg = (Timestamp) document.getData().get("dtg");
Установить метку времени в виде строки и сохранить в массиве:
String timeStamp = String.valueOf(dtg);
String suspectedData [] = {timeStamp};
suspectedValues.addAll(Arrays.asList(suspectedData));
Позже в другой деятельности onCreate:
int counter = 0;
for(int i = 0; i < suspectedValues.size(); i = i + 4){
String timeStamp = suspectedValues.get(4);
Date dtg = new Date(Long.parseLong(timeStamp));
gMap.addMarker(new MarkerOptions().position(latLng).title(suspected).snippet("id: " + id + " | " + taggedAt + ": " + dtg).icon(BitmapDescriptorFactory.fromBitmap(smallMarker)));
if(suspectedValues.size() != 0){
counter = counter + 4;
}
}
Я пробовал несколько различных преобразований между меткой времени, датой и строкой, но не могу заставить это работать. Когда я пытаюсь установить дату dtg, я получаю:
java.lang.NumberFormatException: For input string: "56.504800874303676"
at java.lang.Long.parseLong(Long.java:594)
at java.lang.Long.parseLong(Long.java:636)
Я также пытался:
Timestamp dtg = (Timestamp) document.getData().get("dtg");
Date date = dtg.toDate();
String timeStamp = date.toString();
String suspectedData [] = {timeStamp};
suspectedValues.addAll(Arrays.asList(suspectedData));
с:
String timeStamp = suspectedValues.get(4);
Date theSameDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(timeStamp);
Но он продолжает выбрасывать Разбор исключения.
Timestamp from FB: Timestamp(seconds=1583706187, nanoseconds=895000000)
Converted to Date: Sun Mar 08 22:23:07 GMT 2020
timestamp String going into Array: Sun Mar 08 22:23:07 GMT 2020
timestamp String coming out of Array: 62.76105524614817
I/MapsActivity: ParseException: java.text.ParseException: Unparseable date: "62.76105524614817"