Android 将当前日期与存储的日期进行比较

Android 将当前日期与存储的日期进行比较,android,date,compare,Android,Date,Compare,对于Android应用程序中的easteregg,我必须将当前日期与存储的日期进行比较——我只需要知道它是否是正确的月份 我知道System.currentTimeMillis()是获取当前时间的最快方法,但现在我需要从中获取当前月份。我避免了字符串比较,因为它有已知的缺陷 我糟糕的实现工作正常,但看起来确实不正确和高效: if (Integer.parseInt((String) DateFormat.format("MM",System.currentTimeMillis()))==12)

对于Android应用程序中的easteregg,我必须将当前日期与存储的日期进行比较——我只需要知道它是否是正确的月份

我知道
System.currentTimeMillis()
是获取当前时间的最快方法,但现在我需要从中获取当前月份。我避免了字符串比较,因为它有已知的缺陷

我糟糕的实现工作正常,但看起来确实不正确和高效:

if (Integer.parseInt((String) DateFormat.format("MM",System.currentTimeMillis()))==12) //xmas "easteregg"
        xmasBool=true;

有没有更优雅的解决方案?

这里有一个更好的解决方案:

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // Date's default constructor gives you current time
xmasBool = calendar.get(Calendar.MONTH) == Calendar.DECEMBER;

现在,您可以将变量月份与存储的月份进行比较。

您可以通过使用格式化
java.Util.date
来比较一天、一个月或两者,以及整个日期

例如

为您提供“天”值。同样地,
“MM”
将为您提供月份。根据您的要求使用这些选项的组合

以相同的格式存储,您就有了一个通用的比较标准。

Ofc。“如果”是完全没有必要的,即使我想避免使用日历,这似乎是最干净的解决方案。谢谢大家的建议。
Calendar c = Calendar.getInstance();

int month = c.get(Calendar.MONTH);
new SimpleDateFormat("dd").format(new java.util.Date())