Joda Time .isAfter() 产生不正确的结果
Joda Time .isAfter() producing incorrect result
我从 Joda Time 得到了一些奇怪的结果,我不确定是什么原因造成的。
我正在比较两个日期时间(闹钟结束时间和停止时间),以确保用户不会将闹钟设置为在开始之前结束。
我使用了 is.isAfter() 但它似乎给了我一个错误的结果。
这是 if 语句:
if (MainActivity.alarmStartDateTime.isAfter(MainActivity.alarmEndDateTime)) {
nextReminderTextView1.setText("WARNING THE ALARM END DATE & TIME IS BEFORE THE ALARM DATE & TIME");
alarmSetToEndBeforeItStarts = true;
}
这是开始和结束日期时间:
MainActivity.alarmStartDateTime = 2016-11-21T00:26:45.183+10:00
MainActivity.alarmEndDateTime = 2016-11-21T00:30:00.000+10:00
结果是这样的:
alarmSetToEndBeforeItStarts = true
在此先感谢您的帮助
我无法重现你的问题:
DateTime alarmStart = DateTime.parse("2016-11-21T00:26:45.183+10:00");
DateTime alarmEnd = DateTime.parse("2016-11-21T00:30:00.000+10:00");
System.out.println(alarmStart.isAfter(alarmEnd));
具有以下输出:
false
如果您认为 isAfter()
中存在错误,则需要 post 最低限度的测试来重现问题。这是极不可能,因为 Joda 是一个具有高度测试覆盖率的纯正库,在世界各地的许多项目中使用。
我建议改为:也许 alarmSetToEndBeforeItStarts
是一个 class 字段,并且已由先前调用您引用的 if
语句设置。如果您不注意 Android.
中的生命周期,这很容易发生
我从 Joda Time 得到了一些奇怪的结果,我不确定是什么原因造成的。
我正在比较两个日期时间(闹钟结束时间和停止时间),以确保用户不会将闹钟设置为在开始之前结束。
我使用了 is.isAfter() 但它似乎给了我一个错误的结果。
这是 if 语句:
if (MainActivity.alarmStartDateTime.isAfter(MainActivity.alarmEndDateTime)) {
nextReminderTextView1.setText("WARNING THE ALARM END DATE & TIME IS BEFORE THE ALARM DATE & TIME");
alarmSetToEndBeforeItStarts = true;
}
这是开始和结束日期时间:
MainActivity.alarmStartDateTime = 2016-11-21T00:26:45.183+10:00
MainActivity.alarmEndDateTime = 2016-11-21T00:30:00.000+10:00
结果是这样的:
alarmSetToEndBeforeItStarts = true
在此先感谢您的帮助
我无法重现你的问题:
DateTime alarmStart = DateTime.parse("2016-11-21T00:26:45.183+10:00");
DateTime alarmEnd = DateTime.parse("2016-11-21T00:30:00.000+10:00");
System.out.println(alarmStart.isAfter(alarmEnd));
具有以下输出:
false
如果您认为 isAfter()
中存在错误,则需要 post 最低限度的测试来重现问题。这是极不可能,因为 Joda 是一个具有高度测试覆盖率的纯正库,在世界各地的许多项目中使用。
我建议改为:也许 alarmSetToEndBeforeItStarts
是一个 class 字段,并且已由先前调用您引用的 if
语句设置。如果您不注意 Android.