2010-07-14 78 views

回答

3

好了,這裏要考慮幾件事情:

  • 你真的只關心日期,或者是它的日期和時間?
  • 時區問題嗎?您對未來的即時或未來的當地時間感興趣嗎?
  • 屬性文件應該是人類可讀的嗎?

如果你只是處理一個瞬間,你不關心任何人能夠理解它是即時從屬性文件,我會忍不住來存儲long的字符串表示(即毫秒在java.util.Date)然後檢查它,只是解析字符串並將結果與​​System.currentTimeMillis進行比較。它避免了日期和時間的整個混亂的格式和解析。

對於任何更復雜,我會全力推薦使用Joda Time這將使它更容易理解什麼概念你真的處理(如LocalDateLocalTimeDateTime),並且具有更好的格式化和解析的支持(IMO)比JDK。

8

,你可以:

  1. 保存格式化的日期,如果你想
  2. ,保存格式也增加了靈活性

屬性文件:

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

添加模式的屬性文件,允許改變它而無需修改代碼。例如,您可以包括小時和分鐘,或指定時區。 – helios 2010-07-14 07:13:02

相關問題