Я разрабатываю приложение android и использую GSON для получения данных с сервера. Я работаю над обоими API из Facebook и Imgur и возникает такая же проблема. Как преобразовать дату из формата в миллисекундах в читаемый человеком формат, например, 1584780523 , и я хочу преобразовать ее в любой формат, например, 25, март 2020 .
Что я пытался сделать!
• Получить данные
@SerializedName("datetime")
@Expose
private long datetime;
// setters and getters
• В моем адаптере после получения DATETIME Я анализирую его в удобочитаемом формате
// Get Datetime.
long getDate = data.getDatetime();
// Parse it in this format for example.
DateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
Date result = new Date(getDate);
// Set Result (Human-Readable date)
date.setText(dateFormat.format(result));
• Но вот проблема! Это дает мне такую дату
19 января 1970 г. 09: 54: 00: 533 + 0200
Почему выход в 1970-х гг. Я видел что-то подобное, это вывод по умолчанию Datetime? Но в том же случае он дает мне другие элементы моего RecyclerView тот же вывод, но последние три цифры меняются!
Вот что я спрашиваю!
1- Почему мы используем (многие люди используют long вместо int?
2- Почему вывод дает мне это и как я могу это исправить?
3- В других API, таких как Youtube, они используют обычный DateTime, почему Facebook и Imgur меняют их?
Примечание: я искал свой вопрос в течение 3 дней но я не получил ни ответов, ни относительных вопросов по StackOverflow, поэтому я спросил здесь. Все они или большинство предназначены для PHP и JavaScript Мне нужен пример в Java Android Studio
Спасибо.