2015-12-11 35 views
0

現在這一個困擾我很多......的SimpleDateFormat格式2「相同」日期不同

考慮以下2個日期

Fri Dec 11 00:00:00 CET 2015 
Fri Dec 11 23:59:59 CET 2015 

當我把這些日期都爲SimpleDateFormat的我得到2個不同的結果...

Date dateFrom = Fri Dec 11 00:00:00 CET 2015 
Date dateTo = Fri Dec 11 23:59:59 CET 2015 

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 

String formatedFromDate = formatter.format(dateFrom); 
String formatedToDate = formatter.format(dateTo); 

System.out.println(formatedFromDate); 
System.out.println(formatedToDate); 

OUTPUT:

1st: 11/12/2015 
2nd: 11-12-2015 

現在,如果有人能夠對這裏發生的事情有所瞭解,我會非常感激。

PS。我試圖爲其他日期創建單獨的格式化程序,但效果仍然相同。

編輯:

確定下面的代碼是css導出文件的一部分。

// os.getStart() returns = Fri Dec 11 00:00:00 CET 2015 
// os.getEnd() returns = Fri Dec 11 23:59:59 CET 2015 
// 
// os.getStart() & os.getEnd() looks like 

Date start; 
Date end; 
// SEPARATE PACKAGE 
public Date getStart() { 
     if(start==null) { 
      log.warning("Null start!"); 
      start=new Date(); 
     } 
     return start; 
} 
public Date getEnd() { 
    if(end==null) { 
     log.warning("Null end!"); 
     end=new Date(); 
    } 
    return end; 
} 
// setDates are called when date from database is taken - so no rocket science here 

// CSV EXPORT FILE 
Date dateFrom = os.getStart(); 
Date dateTo = os.getEnd(); 

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 

String formatedFromDate = formatter.format(dateFrom); 
String formatedToDate = formatter.format(dateTo); 

if(names==null) { 
     return; 
} 
Iterator it;%><%= title %>,<%= messages.getString("calls") %>,<%= messages.getString("answered") %><%= (hasTimes) ? ","+messages.getString("h_time") : "" %>,From Date,To Date<% 
it=breakdown.keySet().iterator(); 
while(it.hasNext()) { 
     Integer idInt=(Integer)it.next(); 
     String key=(String)names.get(idInt); 
     OrderlyStats.Breakdown value=(OrderlyStats.Breakdown)breakdown.get(idInt); 
%> 
<%= dateFrom %> //<----Fri Dec 11 00:00:00 CET 2015 
<%= dateTo %> //<----Fri Dec 11 23:59:59 CET 2015 
<%= ("Queue".equals(type)) ? displayNames.get(key) : key %>,<%= value.calls %>,<%= value.answered %><%= (hasTimes) ? ","+Helper.formatDouble(value.time,1) : "" %>, <%= formatedToDate %>,<%= formatedToDate %><% } %> 
+0

必須有一個錯誤,我只是測試你的代碼,同時接受時間'11月12日/ 2015' –

+2

你寫formatedToDate但打印: 你可以在你的日期格式指定目標時區formataedToDate – Rustam

+0

@Rustam它只是寫給SO的時候發生的一個錯字。 –

回答

0

您的日期用CET時區表示。這是你的默認時區?別的地方

formatter.setTimeZone(TimeZone.getTimeZone("CET"));