Java Calendar.getInstance()。。。基本问题

Java Calendar.getInstance()。。。基本问题,java,calendar,Java,Calendar,Calendar.getInstance()是否像普通的单例一样工作,如果我在其他地方调用了getInstance,并设置了日期、月份等,那么如果我在其他地方调用Calendar.getInstance(),这些字段将设置为我之前设置的任何字段?换句话说,如果我想让Calendar.getInstance()返回一个Calendar对象以及当前的时间和日期等,我需要做什么?只需调用clear()?这是否会将实例重置为当前时间,等等 如果这是一个愚蠢的问题,我深表歉意。否,Calendar.get

Calendar.getInstance(
)是否像普通的单例一样工作,如果我在其他地方调用了
getInstance
,并设置了日期、月份等,那么如果我在其他地方调用
Calendar.getInstance()
,这些字段将设置为我之前设置的任何字段?换句话说,如果我想让
Calendar.getInstance()
返回一个
Calendar
对象以及当前的时间和日期等,我需要做什么?只需调用
clear()
?这是否会将实例重置为当前时间,等等


如果这是一个愚蠢的问题,我深表歉意。

否,
Calendar.getInstance()
没有返回单例实例。使用
getInstance()
的要点是,在决定返回哪个日历实现以及如何初始化它时,它将考虑默认的区域设置和时区


因此,您不需要做任何事情来获取当前时间的第二个日历,只需再次调用
Calendar.getInstance()

通常,您可以使用API文档(请参阅源代码)来解决此类问题。从API文档中:

Calendar的getInstance方法返回其日历 已使用当前日期和时间初始化字段:

     Calendar rightNow = Calendar.getInstance();
资料来源:

试试看会发生什么。您所要做的就是获取一个实例并显示该对象。然后你可以睡几秒钟。然后再次获取实例并显示值,看看它们是相同的还是不同的。@camickr学习如何使用API文档是一项很有价值的技能,但我认为aroth不应该因为帮助别人而被否决……这无助于海报学习如何解决问题。人们需要学习如何阅读API。@camickr-在专门讨论该主题的公共论坛上提问是解决问题的有效形式。也许它不像你所希望的那样独立和自立,但是如果LuxuryMode选择在这里问他的问题,而像我和KyleM这样的人愿意回答,那有什么大不了的?我在发布后确实意识到这很简单,足以了解我自己。我很抱歉,谢谢@aroth的回答。我现在知道
clear()
会让我回到1970年1月1日,这显然不是我想要的;)再次感谢。@blue潜伏者-这本书内容丰富。
Calendar
类提供了自己的
equals()
hashCode()
的实现,它们将两个引用同一时刻的实例视为“equal”。这和单身汉不一样。如果正在使用单例,则
Calendar.getInstance()==Calendar.getInstance()
将计算为
true
。如果您尝试一下,您会发现该语句的计算结果为
false
@camickr:KyleM给出了一个完美的示例,展示了API文档的用处。你不认为这有助于教你为什么应该查阅API文档吗?@camickr谁在乎呢?你是警察,对吗?OP问了一个问题,我很友好地给出了答案。也许OP下次会使用API文档,因为他看到了我的信息来源。不,因为现在海报实际上不需要阅读API。如果海报阅读了API,他们会找到准确的声明,因此无需在此处重新发布。此外,当他们阅读API时,他们注意到一些其他有用的方法,可以在将来使用。