頁面日期查詢問題處理

頁面傳遞過來的是標準時間(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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章