アラームマネージャーが繰り返しアラームを設定するためのミリ秒を取得していますが、奇妙な結果が得られます-
午前8時55分にアラームを設定しました
LocalDateTime Earliest Day : 2018-05-22T08:55
Instant : 2018-05-22T08:55:00Z
次に、このメソッドを使用して、エポック(1970)からのミリ秒を取得しました-
LogUtils.LOGD(TAG, instant.toEpochMilli() + " : instant.toEpochMilli()");
アラームがすぐに入ったので、カレンダーとJava時間からミリ秒を取得する古い方法を確認しました-
1526996659862 : System.currentTimeMillis() :
1526979300000 : instant.toEpochMilli()
1526997319862 : calendar.getTimeInMillis()
これによって構築されたlocaldatetimeを取得しました-
LocalDateTime earliestDay = LocalDateTime.of(
now.getYear(), now.getMonth().getValue(), now.getDayOfMonth(),
localTime.getHour(), localTime.getMinute(), localTime.getSecond());
次に、インスタントに変換し、ZoneOffset - UTC - を使用します。
Instant instant = earliestDay.toInstant(ZoneOffset.UTC);
toEpochMilliseconds が意図したとおりに機能しない理由がわかりません。
カレンダー入力 -
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, earliestDay.getHour());
calendar.set(Calendar.MINUTE, earliestDay.getMinute());