Я получаю дату и время с сервера в формате UT C, поэтому мне нужно преобразовать его по местному времени и хранить в дБ в длинном формате.
Но всякий раз, когда я получаю время, я анализирую его в "yyyy-MM-dd'T'HH:mm:ss.SSS"
, а затем преобразую в long
и сохраняю в таблице. но когда я пытался получить, я всегда получаю 01 Jan 1970
.
Вот мой код:
Это формат, в котором я получаю с сервера: "tourCreationDateTime":"2020-03-04T07:12:52.215+0000"
.
// insert tour details
Tour tour = new Tour();
if (tourId > 0) {
tour.setId(tourId);
}
tour.setStatus(Constants.TOUR_STATUS_OPEN);
tour.setTourNumber(tourResponseDetails.getTourId());
tour.setCreatedDateTime(DateUtils.getFormattedDate(tourResponseDetails.getTourCreationDateTime(), DateUtils.DATE_FORMAT_DB));
tourDao().insertTour(tour);
Вот мой формат даты:
public static final String DATE_FORMAT_DB = "yyyy-MM-dd\'T\'HH:mm:ss.SSS";
Вот метод getFormattedDate
:
public static long getFormattedDate(String dateString, String format){
if(!TextUtils.isEmpty(dateString)){
return 0L;
}
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format, Locale.US);
Date date = simpleDateFormat.parse(dateString);
return date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0L;
}
Я не понимаю, что происходит не так. Любая ссылка будет действительно хорошей.