最近项目上遇到需求,前端传过来一个时间字符,如:“2019”、“2019-01”,需要根据这个时间字符去筛选出匹配的数据,即"2019"对应了2019-01-01 00:00:00 和 2019-12-31 23:59:59,"2019-01"对应了2019-01-01 00:00:00 和 2019-01-31 23:59:59
一、思路
用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”):