常に1970年1月1日を返すの解析日付

Sandip Armalパティル:

私は長い形式でDBに格納するローカル時間と必要性にそれを変換する必要があるので、私は、UTCでサーバーから日時を取得しています。

私は時間を受け取るたびしかし、私はそれを解析し"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;
}

私が間違って何が起こっているのかありません。任意の参照は本当に良いだろう。

Kirguduck:
if(!TextUtils.isEmpty(dateString)){
    return 0L;
} 

そして、0Lは、1970年1月1日で
、ここで間違い- if(!TextUtils.isEmpty(dateString))
あなたは確かにそれが含まれている必要があることです!//感嘆符

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=282960&siteId=1