将当前日期与存储的日期进行比较
问题描述:
对于我的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;
答
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH);
现在你可以用你存的月份的变量比较一个月。
答
您可以使用SimpleDateFormat格式化java.Util.Date
来比较一天或一个月或全部日期。
例如,
new SimpleDateFormat("dd").format(new java.util.Date())
给你“天”的价值。同样"MM"
会给你这个月。根据您的要求使用这些组合。
以相同的格式存储它,并且您有一个用于比较的通用标准。
Ofc。 “IF”是完全没有必要的,甚至我想避免使用Calender,这似乎是最干净的解决方案。谢谢大家的建议。 – 2014-11-25 13:33:44