2012-09-27 208 views
2

爲什麼今天的日期顯示爲之前的日期?爲什麼今天的日期顯示爲之前的日期?

import java.text.DateFormat; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.List; 

public class Test { 

    public static void main(String args[]) throws ParseException { 

     Date date = new Date(); 

     DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 

     List currentObject = new ArrayList(); 

     currentObject.add("2012-09-27"); 
     Date ExpDate = dateFormat.parse((String) currentObject.get(0)); 

     if (ExpDate.before(date)) { 
      System.out.println("true"); 
     } 

     else { 
      System.out.println("false"); 
     } 
    } 

} 

任何想法?

+1

因爲我們在2012年9月27日之後的0小時... –

+0

試着打印出date的值和ExpDate的值,你會明白爲什麼'ExpDate'在'date'之前。 – Jesper

+0

你只需要做一個**全選**和** Ctrl ** ** ** ** ** ** K **,來格式化它:) – mtk

回答

5
Date date = new Date(); 

將產生的時間太長,但這

currentObject.add("2012-09-27"); 
dateFormat.parse((String) currentObject.get(0)); 

將默認爲00:00:00,爲您dateFormat排除時間從而導致時間部分被設置爲0h

所以它是正確的:

ExpDate: 2012-09-27 00:00:00 

早於

date: 2012-09-27 <some time later than midnight> 
+0

Date date = new Date(); Date ExpDate = dateFormat.parse((String)currentObject.get(0)); if(ExpDate .before(date)) 必須返回false – Pawan

+0

表示當前日期之前必須返回false。 – Pawan

+0

我編輯了我的問題,請你幫忙 – Pawan

0

當你說

Date date = new Date();

您正在創建是即時Date對象創建,即27 2012年9月11:59:01.01。

這是您之前創建的日期之後,其中沒有指定時間組件,因此默認爲00:00:00.000。

相關問題