Дата разбора всегда возвращается 01 января 1970 - PullRequest
0 голосов
/ 05 марта 2020

Я получаю дату и время с сервера в формате 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;
}

Я не понимаю, что происходит не так. Любая ссылка будет действительно хорошей.

1 Ответ

3 голосов
/ 05 марта 2020
if(!TextUtils.isEmpty(dateString)){
    return 0L;
} 

и 0L - 01 января 1970 года.
Ошибка здесь - if(!TextUtils.isEmpty(dateString)).
Вы уверены, что он должен содержать! // восклицательный знак

...