好吧,我很难理解在这种情况下我会做些什么。我指定了当前日期,它获取执行特定操作的日期,然后我需要指定完成日期,因此该方法将知道何时完成处理。
public void process() {
currentDate = getCurrentDate();
String dateStart = lotteryStart;
String dateStop = getCurrentDate().toString();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
DateTime dt1 = new DateTime(d1);
//DateTime dt2 = dt1.plusMinutes(10);
DateTime dt2 = new DateTime(d2);
sendMessage(Integer.toString(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60));
if (dt2 == dt1.plusMinutes(1)) {
//sendMessage(Integer.toString(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60));
//if (Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 == 500) {
durationReached = true;
}
} catch (Exception e) { e.printStackTrace(); }
}
如何在开始日期前确定结束日期,特定时间?例如,如果开始日期是06/10/2013 23:02,则结束日期将是06/10/2013 23:05
完全无视
if (dt2 == dt1.plusMinutes(1)) {
除了时间越来越精细。
我不知道如何设置这个结束日期。任何帮助表示赞赏。
答案 0 :(得分:0)
1) DateTime
是不可变的,因此当您使用dt1.plusMinutes(1)
时,实例dt1
不会更改。
创建了DateTime
的新实例。因此,您应该将新实例分配给dt1
。
DateTime dt1 = new DateTime(d1).plusMinutes(1);
DateTime dt2 = new DateTime(d2);
2)不要将日期与==
进行比较,您应该使用Object::equals(Object)
代替:
if (dt2.equals(dt1)) {
修改强>
有一个更简单的方法来解析DateTime
没有java.util.Date
和SimpleDateFormat
的情况
DateTimeFormatter和DateTimeFormat。
DateTimeFormatter dtf = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm");
DateTime dt1 = dtf.parse(dateAsString);