【问题标题】:Compare current date with stored one将当前日期与存储的日期进行比较
【发布时间】:2014-11-25 12:33:24
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: android date compare


    【解决方案1】:

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

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

    【讨论】:

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

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

    【讨论】:

      【解决方案3】:

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

      例如。

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

      为您提供“日”值。同样"MM" 会给你一个月。根据您的要求使用这些组合。

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

      【讨论】:

        猜你喜欢
        • 2015-11-20
        • 2017-05-15
        • 2016-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多