对于我的Android应用中的easteregg,我必须将当前日期与存储日期进行比较 - 我只需要知道它是否是正确的月份。
我知道System.currentTimeMillis()
是获取当前时间的最快方式,但现在我需要从中获得当前月份。我避免使用String比较它已知的缺陷。
我糟糕的实施有效,但它看起来并不正确和有效:
if (Integer.parseInt((String) DateFormat.format("MM",System.currentTimeMillis()))==12) //xmas "easteregg"
xmasBool=true;
还有更优雅的解决方案吗?
答案 0 :(得分:0)
这是一个更好的解决方案:
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date()); // Date's default constructor gives you current time
xmasBool = calendar.get(Calendar.MONTH) == Calendar.DECEMBER;
答案 1 :(得分:0)
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH);
现在您可以将变量月份与存储的月份进行比较。
答案 2 :(得分:0)
您可以使用SimpleDateFormat格式化java.Util.Date
来比较整个日期的一天或一个月或两者。
EG。
new SimpleDateFormat("dd").format(new java.util.Date())
为您提供“日期”值。同样地,"MM"
将为您提供月份。根据您的要求使用这些组合。
以相同的格式存储,您有一个通用的比较标准。