如何将未来日期存储在.property文件中,并将此日期与当前日期进行比较?
答案 0 :(得分:8)
你可以:
属性文件:
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)
嗯,这里有几点需要考虑:
如果你只是处理一个瞬间而你并不关心任何人能够从属性文件中了解它的哪个瞬间,那么我很想存储long
的字符串表示形式(即,java.util.Date
中的millis)然后检查它,只需解析字符串并将结果与System.currentTimeMillis
进行比较。它避免了整个凌乱的格式化和解析日期和时间。
对于更复杂的内容,我建议您使用Joda Time,以便更容易理解您真正处理的概念(例如LocalDate
,LocalTime
或{{ 1}})并且它具有比JDK更好的格式化和解析支持(IMO)。