现在这个让我感到困惑......
考虑以下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);
输出:
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 :(得分:0)
您的日期以CET时区表示。这是你的默认时区吗? 您可以在日期格式化程序中指定目标时区:
formatter.setTimeZone(TimeZone.getTimeZone("CET"));