у меня есть:Java GetTime() возвращает нуль из отформатированной строки
String stringDate = "2017-02-16T15:00:00Z"
Я хочу, чтобы преобразовать это в дату и после этого я хочу, чтобы быть преобразованы в Лонг. Вот мой код:
private void normalizeDate(ContentValues values) {
// normalize the date value
if (values.containsKey(SmogContract.MeasurementEntry.COLUMN_FROM_DATE_TIME)) {
Date date = convertDateFromStringToDate(values.getAsString(SmogContract.MeasurementEntry.COLUMN_FROM_DATE_TIME));
long fromDateValue = date.getTime();
values.put(SmogContract.MeasurementEntry.COLUMN_FROM_DATE_TIME, SmogContract.normalizeDate(fromDateValue));
}
if (values.containsKey(SmogContract.MeasurementEntry.COLUMN_TILL_DATE_TIME)) {
long fromDateValue = values.getAsLong(SmogContract.MeasurementEntry.COLUMN_TILL_DATE_TIME);
values.put(SmogContract.MeasurementEntry.COLUMN_TILL_DATE_TIME, SmogContract.normalizeDate(fromDateValue));
}
}
private Date convertDateFromStringToDate(String stringDate){
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
Date convertedFromStringDate = null;
try {
convertedFromStringDate = format.parse(stringDate);
} catch (ParseException e) {
e.printStackTrace();
}
return convertedFromStringDate;
}
Вот исключение, которое я получаю:
java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
at com.example.marcin.smog_mapa.data.SmogProvider.normalizeDate(SmogProvider.java:109)
at com.example.marcin.smog_mapa.data.SmogProvider.insert(SmogProvider.java:85)
at android.content.ContentProvider$Transport.insert(ContentProvider.java:263)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:163)
at android.os.Binder.execTransact(Binder.java:453)
Пожалуйста, взгляните на консоль. Сюрприз !!! –
http://stackoverflow.com/questions/19112357/java-simpledateformatyyyy-mm-ddthhmmssz-gives-timezone-asistist – Laazo
Возможный дубликат [Java SimpleDateFormat ("yyyy-MM-dd'T'HH: mm: ss 'Z' ") указывает часовой пояс как IST] (http://stackoverflow.com/questions/19112357/java-simpledateformatyyyy-mm-ddthhmmssz-gives-timezone-asistist) – RamPrakash