在.property中存储日期并与当前日期进行比较

时间:2010-07-14 06:55:07

标签: java date

如何将未来日期存储在.property文件中,并将此日期与当前日期进行比较?

2 个答案:

答案 0 :(得分:8)

你可以:

  1. 保存格式化日期
  2. 如果需要,也可以保存格式,增加灵活性
  3. 属性文件:

    myDate=25/01/2012
    myDate.pattern=dd/MM/yyyy
    

    然后,在您的程序中,您可以这样加载日期:

    // choose one of two lines!
    String pattern = "dd/MM/yyyy"; // for a fixed format
    String pattern = propertyFile.getProperty("myDate.pattern");
    
    String formattedDate = propertyFile.getProperty("myDate");
    SimpleDateFormat format = new SimpleDateFormat(pattern);
    Date myDate = format.parse(formattedDate);
    

    修改:与当前比较...

    1. boolean isFuture = myDate.after(new Date())
    2. boolean isPast = myDate.before(new Date())
    3. int compare = myDate.compareTo(new Date());
    // compare < 0 => before
    // compare == 0 => equal
    // compare > 0 => after
    

答案 1 :(得分:3)

嗯,这里有几点需要考虑:

  • 你真的只关心 date ,还是日期和时间?
  • 时区重要吗?您对未来的即时或未来的当地时间感兴趣吗?
  • 属性文件应该是人类可读的吗?

如果你只是处理一个瞬间而你并不关心任何人能够从属性文件中了解它的哪个瞬间,那么我很想存储long的字符串表示形式(即,java.util.Date中的millis)然后检查它,只需解析字符串并将结果与​​System.currentTimeMillis进行比较。它避免了整个凌乱的格式化和解析日期和时间。

对于更复杂的内容,我建议您使用Joda Time,以便更容易理解您真正处理的概念(例如LocalDateLocalTime或{{ 1}})并且它具有比JDK更好的格式化和解析支持(IMO)。