2014-11-25 250 views
0

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

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

我的可怕实现的作品,但它确实看起来并不正确,有效:

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

对此有任何更优雅的解决方案?

回答

0

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

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

Ofc。 “IF”是完全没有必要的,甚至我想避免使用Calender,这似乎是最干净的解决方案。谢谢大家的建议。 – 2014-11-25 13:33:44

0
Calendar c = Calendar.getInstance(); 

int month = c.get(Calendar.MONTH); 

现在你可以用你存的月份的变量比较一个月。

0

您可以使用SimpleDateFormat格式化java.Util.Date来比较一天或一个月或全部日期。

例如,

new SimpleDateFormat("dd").format(new java.util.Date()) 

给你“天”的价值。同样"MM"会给你这个月。根据您的要求使用这些组合。

以相同的格式存储它,并且您有一个用于比较的通用标准。

相关问题