最近項目上遇到需求,前端傳過來一個時間字符,如:“2019”、“2019-01”,需要根據這個時間字符去篩選出匹配的數據,即"2019"對應了2019年的beginTime和endTime,"2019-01"對應了2019年1月的beginTime和endTime
一、思路
用SimpleDateFormat類將前端傳過來的字符轉換成Date類型,然後獲取這個Date的開始時間和結束時間(年開始時間-年結束時間)
二、代碼實現
public static String[] getDate(String date){
if (StringUtils.isEmpty(date)){
return new String[2];
}
String[] date1 = new String[2];
SimpleDateFormat sdf = null;
Date parse = null;
DateTime beginDateTime = null;
DateTime endDateTime = null;
try {
if (date.length() == 4) {
sdf = new SimpleDateFormat("yyyy");
parse = sdf.parse(date);
beginDateTime = DateUtil.beginOfYear(parse);
endDateTime = DateUtil.endOfYear(parse);
date1[0] = beginDateTime.toString();
date1[1] = endDateTime.toString();
}
if (date.length() == 7) {
sdf = new SimpleDateFormat("yyyy-MM");
parse = sdf.parse(date);
beginDateTime = DateUtil.beginOfMonth(parse);
endDateTime = DateUtil.endOfMonth(parse);
date1[0] = beginDateTime.toString();
date1[1] = endDateTime.toString();
}
} catch (ParseException e) {
e.printStackTrace();
}
system.out.println("date的開始時間:"+date1[0])
system.out.println("date的結束時間:"+date1[1])
return date1;
}
- 上述代碼中使用的DateUtil工具類是hutool提供的時間工具類;
- 運行結果(String date = “2019”):
- 運行結果(String date = “2019-01”):