解析日期总是返回 1970 年 1 月 1 日
Parsing date always returning 01 Jan 1970
我正在从服务器获取 UTC 日期时间,因此我需要将其转换为本地时间并需要以长格式存储在数据库中。
但每当我收到时间时,我都会在 "yyyy-MM-dd'T'HH:mm:ss.SSS"
中解析它,然后将其转换为 long
并存储在 table 中。但是当我尝试获取时,我总是得到 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;
}
我不知道出了什么问题。任何参考都会非常好。
if(!TextUtils.isEmpty(dateString)){
return 0L;
}
0L 是 1970 年 1 月 1 日。
这里的错误 - if(!TextUtils.isEmpty(dateString))
.
你确定它应该包含 !//感叹号
我正在从服务器获取 UTC 日期时间,因此我需要将其转换为本地时间并需要以长格式存储在数据库中。
但每当我收到时间时,我都会在 "yyyy-MM-dd'T'HH:mm:ss.SSS"
中解析它,然后将其转换为 long
并存储在 table 中。但是当我尝试获取时,我总是得到 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;
}
我不知道出了什么问题。任何参考都会非常好。
if(!TextUtils.isEmpty(dateString)){
return 0L;
}
0L 是 1970 年 1 月 1 日。
这里的错误 - if(!TextUtils.isEmpty(dateString))
.
你确定它应该包含 !//感叹号