私のアプリケーションでは、ユーザーが既に設定した時刻に基づいて通知を表示したいし、日付と時刻をローカルデータベースに格納しています。
私はローカルデータベースから日付と時刻を取得し、SimpleDateFormatのと比較すると、それは罰金7.0アンドロイドバージョンを超えるが7.0以下のように働いている日 SimpleDateFormatと表示通知で保存日時を比較するにはどうすればよいですか?
SimpleDateFormat yourDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date date = null;
try {
String date_time = "17-11-2017 15:10";
date = yourDateFormat.parse(date_time);
} catch (ParseException e) {
Log.e(TAG, "Parsing date time failed", e);
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Calendar current = Calendar.getInstance();
if (calendar.compareTo(current) <= 0) {
Toast.makeText(getApplicationContext(), "Invalid Date/Time", Toast.LENGTH_LONG).show();
} else {
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent myIntent = new Intent(RemainderActivity.this, NotificationReceiver.class);
PendingIntent displayIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), displayIntent);
}
このようないくつかのデバイスで解析していますバージョンは、この
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Date java.text.SimpleDateFormat.parse(java.lang.String)' on a null object reference
のようなjava.lang.NullPointerException
を示しています このエラーはここに表示されますdate = yourDateFormat.parse(date_time);
。
私を助けてください。
ありがとうございました。
この行をチェックしてください年が間違っていますString date_time = "17/11/207 15:10"; –
申し訳ありませんが、間違って入力してください。元の形式は 'String date_time =" 17-11-2017 15:10 ";' – Ram
あなたはその行から 'NullPointerException'を得ることができると信じています。これがあなたが実行している正確なコードだと確信していますか? –