2012-01-05 42 views
14

我正在使用以下代碼以「dd/MM/yyyy HH:mm:ss.SS」格式獲取日期。希望以「dd/MM/yyyy HH:mm:ss.SS」格式顯示當前日期和時間

import java.text.SimpleDateFormat; 
    import java.util.Calendar; 
    import java.util.Date; 

    public class DateAndTime{ 

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

    Calendar cal = Calendar.getInstance(); 
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SS"); 
    String strDate = sdf.format(cal.getTime()); 
    System.out.println("Current date in String Format: "+strDate); 

    SimpleDateFormat sdf1 = new SimpleDateFormat(); 
    sdf1.applyPattern("dd/MM/yyyy HH:mm:ss.SS"); 
    Date date = sdf1.parse(strDate); 
    System.out.println("Current date in Date Format: "+date); 

} 
} 

和我得到以下輸出

Current date in String Format: 05/01/2012 21:10:17.287 
    Current date in Date Format: Thu Jan 05 21:10:17 IST 2012 

請建議我應該做的,以顯示相同的字符串格式(DD/MM/YYYY HH:MM:SS.SS)之日起,即什麼我想以下的輸出:

Current date in String Format: 05/01/2012 21:10:17.287 
    Current date in Date Format: 05/01/2012 21:10:17.287 

請建議

+1

當你System.out.println一個日期對象時,調用Date的toString方法。您需要創建自己的Date的子類並覆蓋toString方法以按照您希望的方式輸出Date。 – 2012-01-05 15:50:05

+1

這真的不清楚你想要什麼,但明白這一點:'Date.toString()'返回默認格式,不能做任何事情。你必須使用'SimpleDateFormat'來格式化字符串輸出。 – Viruzzo 2012-01-05 15:51:06

+0

你的意思是'.SSS'爲毫秒嗎? Java不支持1/100秒。如果你使用'.SS',那麼許多行爲並不像你期望的那樣。 – 2012-01-05 16:02:32

回答

15

你不能 - 因爲你打電話Date.toString()這將總是包括系統時區,如果這是默認日期格式的默認語言環境。價值本身沒有格式的概念。如果要以特定方式格式化,請使用SimpleDateFormat.format() ...使用Date.toString()幾乎總是一個壞主意。

12

以下代碼給出了預期輸出。你想要嗎?

import java.util.Calendar; 
import java.util.Date; 

public class DateAndTime { 

    public static void main(String[] args) throws Exception { 
     Calendar cal = Calendar.getInstance(); 
     SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SS"); 
     String strDate = sdf.format(cal.getTime()); 
     System.out.println("Current date in String Format: " + strDate); 

     SimpleDateFormat sdf1 = new SimpleDateFormat(); 
     sdf1.applyPattern("dd/MM/yyyy HH:mm:ss.SS"); 
     Date date = sdf1.parse(strDate); 
     String string=sdf1.format(date); 
     System.out.println("Current date in Date Format: " + string); 

    } 
} 
3

用途:

System.out.println("Current date in Date Format: " + sdf.format(date)); 
12

的SimpleDateFormat

sdf=new SimpleDateFormat("dd/MM/YYYY hh:mm:ss"); 
String dateString=sdf.format(date); 

它會給輸出28/09/2013 09:57:19爲你的預期。

For complete program click here

+0

java.util.Date temp = new SimpleDateFormat(「dd/mm/yyyy hh:mm:ss」,Locale.US).parse(ackDateTimeString);終於爲我工作了! – 2015-03-11 06:23:32