Java |如何确定日历对象是否有一年的历史?

Java |如何确定日历对象是否有一年的历史?,java,calendar,Java,Calendar,如果我有一个日期为2012年1月8日的日历对象,我如何确定该对象创建后是否至少有一年?首先,您需要两个日期戳;一个用于帐户创建日期,第二个用于“现在” 然后,您只需将两个日期戳转换为具有相同单位的标量值(例如,使用Calendar.getTime()提供从某个“历元”开始的毫秒数),从另一个日期戳中减去一个日期戳,查看差值是否大于、小于或等于1年==365天(以相关单位) 如果您谈论的是“日历年”(例如,考虑闰年等),那么它会变得更复杂,并且规则可能是特定于地区的 我建议您使用java.tim

如果我有一个日期为2012年1月8日的日历对象,我如何确定该对象创建后是否至少有一年?

首先,您需要两个日期戳;一个用于帐户创建日期,第二个用于“现在”

然后,您只需将两个日期戳转换为具有相同单位的标量值(例如,使用
Calendar.getTime()
提供从某个“历元”开始的毫秒数),从另一个日期戳中减去一个日期戳,查看差值是否大于、小于或等于1年==365天(以相关单位)

如果您谈论的是“日历年”(例如,考虑闰年等),那么它会变得更复杂,并且规则可能是特定于地区的


我建议您使用
java.time
类,而不是旧的
Calendar
API。如果您对此不熟悉,请先阅读Oracle Java教程

Java.time 旧的java.util.Date/.Calendar类已经被内置在Java8和更高版本()中的新框架所取代。如果您真的想要.Calendar,请搜索StackOverflow上已有的数百个此类问题中的任意一个

下面是java.time中的一些示例代码。
LocalDate
类表示一个只包含日期的值,不包含一天中的时间或时区。但请注意,确定今天的日期需要一个时区

//然后。
LocalDate=LocalDate.parse(“2012-01-08”);
//现在。
ZoneId ZoneId=ZoneId.of(“美国/蒙特利尔”);
LocalDate today=LocalDate.now(zoneId);
//过去了。
Period Period=Period.between(当时,今天);
int years=period.getYears();
//业务逻辑。
布尔值至少有一年已过去=(年数>=1);
转储到控制台

System.out.println ( "From then: " + then + " to today: " + today + ", atLeastOneYearHasPassed: " + atLeastOneYearHasPassed + ", years: " + years );
跑步的时候

从那时起:2012-01-08到今天:2015-10-17,至少一年过去了:是的,年数:3


做了一个编辑,意思是对象,而不是帐户。你知道这个的语法吗?我对日历对象一点也不熟悉。如果我们只打算用365天,不用担心闰年之类的事,你就失去了我。
日历
对象不编码>>任何