頁面傳遞過來的是標準時間(yyyy-MM-dd’T’HH:mm:ss.SSSXXX),換成北京時間需要加上8個小時
例子:
後端DTO對象:
public void setEndTime(String endTime) {
this.endTime=endTime;
if(StringUtils.isBlank(endTime)) {
this.endTime = (DateUtils.dateFormatUTC(endTime));
}
}
XML文件:
因爲日期是String類型,if標籤裏面需要對空字符進行判斷:
<if test="startTime != null and startTime != '' ">
爲了方便開發及測試,建議頁面查詢的SQL使用統一DATE_FORMAT()函數;
/**
* 日期格式轉換yyyy-MM-dd'T'HH:mm:ss.SSSXXX (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO 指定格式
* @param dateStr 日期
* @param pattern 傳入格式
* @return
*/
public static String dateFormatUTC(String dateStr,String pattern){
return getString(dateStr, pattern);
}
/**
* 日期格式轉換yyyy-MM-dd'T'HH:mm:ss.SSSXXX (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO yyyy-MM-dd
* @param dateStr 日期
* @return
*/
public static String dateFormatUTC(String dateStr){
return getString(dateStr, DATE_PATTON_DEFAULT);
}
private static String getString(String dateStr, String pattern) {
DateFormat sdf1 = new SimpleDateFormat(UTC_DATE_FORMAT);
DateFormat sdf2 = new SimpleDateFormat(pattern);
try {
Date date = sdf1.parse(dateStr);
return sdf2.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static final String DATE_PATTON_DEFAULT = "yyyy-MM-dd";
public static final String UTC_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
前端日期選擇器type(顯示類型)使用默認值(date)
<el-form-item prop="beginDate" label="時間:">
<el-date-picker
style="width: 200px;" class="filter-item" :editable="false"
v-model="listQuery.beginDate"
type="date"
format="yyyy-MM-dd"
placeholder="起始時間"
:picker-options="pickerBeginDateBefore"
>
</el-date-picker>
</el-form-item>