使用GregorianCalendar实例确定经过的时间吗?

问题描述 投票:0回答:1

我正在研究CIS 163班的一个项目,该项目实际上是露营地预订系统。提供了大量代码,我只需要向其中添加某些功能即可。目前,我需要确定以天数表示的两个不同的GregorianCalendar实例之间的时间间隔(一个是当前日期,另一个是预定的“签出”)。我还没办法弄清楚该怎么做,希望这里有人可以帮助我。

java compare gregorian-calendar
1个回答
0
投票

GregorianCalendar很旧,您不应该再使用它了。从Java 8开始,它很麻烦,并被“新的” java.time模块所取代。

不过,如果需要使用GC实例进行比较,则可以轻松地使用日期之间的毫秒数来计算时间,如下所示:

GregorianCalendar date1 = new GregorianCalendar();
GregorianCalendar date2 = new GregorianCalendar();

// Adding 15 days after the first date
date2.add(GregorianCalendar.DAY_OF_MONTH, 15);
long duration = (date2.getTimeInMillis() - date1.getTimeInMillis() )
                         / ( 1000 * 60 * 60 * 24) ;
System.out.println(duration);

如果您想使用新的Time API,以下代码将起作用。

LocalDate date1 = LocalDate.now();
LocalDate date2 = date1.plusDays(15);

Period period = Period.between(date1, date2);
int diff = period.getDays();
System.out.println(diff);

如果您需要在类型之间进行转换(例如,您正在使用旧版代码,则可以这样操作:]

LocalDate date3 = gcDate1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate date4 = gcDate2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

此外,我很确定一定要一遍又一遍地问这个问题,因此请确保在询问之前进行正确的搜索。

© www.soinside.com 2019 - 2024. All rights reserved.