Java获取响应的日期时间,这样写是否合理?
在java中,这样获取响应的时间是否合理?
/**
* 获取当前日期指定几个月前的日期
* @return
*/
public static Date getNMonthBefore(int amount) {
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(calendar.MONTH, amount);
Date dNMonthBefore = calendar.getTime();
return dNMonthBefore;
}
/**
* 获取本年的开始时间
*
* @return
*/
public static Date getBeginTimeOfYear(int amount) {
Date date = null;
Calendar cal = Calendar.getInstance();
try {
cal.add(Calendar.YEAR, amount);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
} catch (Exception e) {
e.printStackTrace();
}
return cal.getTime();
}
/**
* 获取当前年是那一年
*
* @return
*/
public static Integer getNowYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
}
/*
* 当前年的最后时间
* */
public static Date getEndTimeOfYear() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, getNowYear());
cal.set(Calendar.MONTH, Calendar.DECEMBER);
cal.set(Calendar.DATE, 31);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
return cal.getTime();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
date
类存在诸多问题,即使是Calender
类也存在多线程下不同步等问题,所以可以考虑采用java.time
。Calendar calendar = Calendar.getInstance();
这句代码在每个方法中都出现了,所以你需要将这句代码提炼出来单独生成一个方法比较合适。你可能会问我提炼成一个方法也需要在每个方法中使用呀,但是你想想啊,加入你获取Calender的方法改变了那么你改动的话只需要改动一处即可,而不是每个方法都改一次,对不对。这样的话算是减少了代码的耦合度。或者说你不用提炼成一个方法直接写成public static Calendar cal = Calendar.getInstance();
这样你也不用每个类都写一次了。getBeginTimeOfYear
方法中Date date = null
有何意义结果上看应该没什么问题。不过如果你用的是java8,我建议你使用java8新增的
java.time
包下的时间日期类处理,不要再使用很久不维护的Calender
了,那是老旧的用法了。参考: https://www.javabrahman.com/q...