2015-09-22 55 views

回答

2

使用yyyy-MM-dd 00:00:00格式而不是yyyy-MM-dd HH:mm:ss

它會改變的小時,分​​鍾和秒爲零而不是實際值

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); 
String dateValue = dateFormat.format(new Date()); 
System.out.println(dateValue); 
+0

非常感謝你:) –

1

你可以嘗試使用這個:

calendar.set(Calendar.HOUR_OF_DAY, 0); 

事情是這樣的:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Calendar c = Calendar.getInstance(); 
c.set(Calendar.HOUR, 0); 
c.set(Calendar.MINUTE, 0); 
c.set(Calendar.SECOND, 0); 
System.out.println(sdf.format(c.getTime())); 
c.set(Calendar.HOUR_OF_DAY, 0); 
System.out.println(sdf.format(c.getTime())); 
+0

非常感謝你:) –

1

如果你不需要輸入格式的驗證,你可以使用正則表達式:

input.replaceAll("\d\d:\d\d:\d\d", "00:00:00") 

但是請注意,這種轉換並不一定是一種產生一個有效時間:午夜可能不是取決於您正在轉換的日期和時區,因此這可能不會產生有效時間。 (亞洲/加沙的夏令時開始是經常引用的例子)。

+0

非常感謝你:) –

1
Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.YEAR,2015); 
cal.set(Calendar.MONTH,6); 
cal.set(Calendar.HOUR_OF_DAY,2); 
cal.set(Calendar.MINUTE,0); 
cal.set(Calendar.SECOND,0); 
cal.set(Calendar.MILLISECOND,0); 

Date d = cal.getTime(); 

並對其進行格式化,您可以使用:

SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String formatted = sdFormat.format(cal.getTime()); 
+1

非常感謝你: ) –

1

只要你想保留,例如「日期」的部分提供格式...

String text = "2015-06-02 12:60:30"; 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date date = sdf.parse(text); 

SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
System.out.println(out.format(date)); 

輸出...

2015-06-02 00:00:00 

這是一個小三ck,其實際上在JavaDocs中有描述

從給定字符串的開頭解析文本以產生一個日期。 該方法可能不會使用給定字符串的整個文本。

重點由我加

+0

非常感謝:) –

+0

很高興它可以幫助;) – MadProgrammer

1

試試這個

SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd"); 
    String strDate = sm.format(myDate); 
+0

非常感謝你:) –

相關問題