我想比较两次约会。如果当前日期时间较大或在特定日期之后,则返回“True”。
到目前为止我已经试过了。
String deadline = "25/11/2017 11:00:00";
DateTime utc = new DateTime(DateTimeZone.UTC);
DateTimeZone timeZone = DateTimeZone.forID("Asia/Dhaka");
DateTime dhakaTime = utc.toDateTime(timeZone);
//Dead Line Time
DateTimeFormatter format = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime deadlineTime = format.parseDateTime(deadline.trim());
//Comapare
return deadlineTime.isAfter(dhakaTime.plusDays(2));
因为今天是23,dhakaTime.plusDays(2)将是25,所以它应该返回"true“。
但我在说“假的”。
产值:
dhakaTime.plusDays(2) = 2017-11-25T14:10:27.762+06:00 deadlineTime = 2017-11-25T11:00:00.000+06:00
我是错过了什么还是做错了什么?
发布于 2017-11-23 00:21:46
它正确地给出了false
。
你在比较
deadLineTime = 2017-11-25T11:00:00.000+06:00 and
dhakaTime(+2) = 2017-11-25T14:10:27.762+06:00
他们都在同一天,但随着时间的推移,deadLineTime
在上午11点,而dhakaTime(+2)
在下午2点。所以,
(Nov 25, 2017 11AM)isAfter(Nov 25, 2017 2PM)
是false
。
编辑:Testcase
正如您前面提到的,下面使用了不同的测试用例来比较deadLine
和dhakaTime
(+1和+2天)。我希望这能让你知道这是怎么回事。
public static void main(String[] args) {
String deadline = "25/11/2017 11:00:00";
DateTime utc = new DateTime(DateTimeZone.UTC);
DateTimeZone timeZone = DateTimeZone.forID("Asia/Dhaka");
DateTime dhakaTime = utc.toDateTime(timeZone);
//Dead Line Time
DateTimeFormatter format = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime deadlineTime = format.parseDateTime(deadline.trim());
System.out.println("Deadline : " + deadline);
System.out.println("Current datetim : " + dhakaTime);
System.out.println("current datetime + 1 day : " + dhakaTime.plusDays(1));
System.out.println("current datetime + 2 day : " + dhakaTime.plusDays(2));
System.out.println("Is deadline after current datetime:" + deadlineTime.isAfter(dhakaTime));
System.out.println("Is deadline after current datetime + 1 day:" + deadlineTime.isAfter(dhakaTime.plusDays(1)));
System.out.println("Is deadline after current datetime + 2 day:" + deadlineTime.isAfter(dhakaTime.plusDays(2)));
}
发布于 2017-11-23 00:21:54
尝试使用DateTimeFormatter withZone(DateTimeZone专区)方法并使用该方法创建DateTime
https://stackoverflow.com/questions/47449774
复制相似问题