イベントを予定表にプログラムで追加したいとします。私は以下のコードを使用してカレンダーイベントを作成しています。カレンダーに予定を追加すると間違った終了日が表示される
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, DateUtils.getMiliseconds("10/10/2017", "09:02 AM");
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, DateUtils.getMiliseconds("10/13/2017", "05:02 PM"));
intent.putExtra(CalendarContract.Events.TITLE, "my title");
intent.putExtra(CalendarContract.Events.EVENT_LOCATION, "my location");
startActivity(intent);
ここでDateUtils.getMiliseconds
は私の方法です。
static long getMiliseconds(String date, String time){
try{
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy h:mm a");
Date date1 = sdf.parse(date+" "+time);
Calendar cal1 = Calendar.getInstance();
cal1.setTime(date1);
Calendar beginCal = Calendar.getInstance();
beginCal.set(cal1.get(Calendar.YEAR),cal1.get(Calendar.MONTH), cal1.get(Calendar.DAY_OF_MONTH), cal1.get(Calendar.HOUR_OF_DAY), cal1.get(Calendar.MINUTE));
return beginCal.getTimeInMillis();
}
catch (Exception e) {
return new Date().getTime();
}
}
ここでは、同じ方法で開始時間と終了時間の両方をミリ秒で取得しています。カレンダーイベントで正しい開始時刻が10/10/2017 9:02 AMになっています。ただし、終了時間は10/13/2017 5:02 PMではなく、10/10/2017 10:02 AMです。
私はずっと利用可能な解決策をstackoverflowで試しましたが、私の解決策はありません。
私はまた、代わりにEXTRA_EVENT_BEGIN_TIME
とEXTRA_EVENT_END_TIME
のEvents.DTSTART
とEvents.DTSTART
を渡してみましたが、それはあまりにも間違った日付が表示されます。代わりに
Calendar cal1 = Calendar.getInstance();
の
私は今日の日付=新しい日付(getMiliseconds( "10/13/2017"、 "05:02 PM"))を使用しました。それは私に滑らかな金を与えた10月13日17:02:36 CEST 2017は全く問題なしで印刷されました。 (Eclipse Java IDE) – koksalb
確認:intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME、新しい日付(getMiliseconds( "10/10/2017"、 "09:02 AM"))); intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME、新しいDate(getMiliseconds( "10/13/2017"、 "05:02 PM"))); Android 5.xおよび6.x(AndroidスタジオIDE)で問題なく動作し、インテントを管理します インテントの結果:バンドル[{endTime = Fri Oct 13 17:02:17 GMT + 00:00 2017、 beginTime = Tue Oct 10 09:02:17 GMT + 00:00 2017、eventLocation = my location、title = my title}] – koksalb
バージョン6.0では正常に動作していますが、5.1では正常に動作していません。これにはどんな解決策がありますか? @koksalb – Pooja