date - Java获取响应的日期时间,这样写是否合理?
本文介绍了date - 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();
}
解决方案
- 代码结果应该没什么问题,有的话也是逻辑问题。
- 楼上说的这个建议题主可以试一试。主要是
date
类存在诸多问题,即使是Calender
类也存在多线程下不同步等问题,所以可以考虑采用java.time
。 - 指出我对你写的代码的一些看法:
-
Calendar calendar = Calendar.getInstance();
这句代码在每个方法中都出现了,所以你需要将这句代码提炼出来单独生成一个方法比较合适。你可能会问我提炼成一个方法也需要在每个方法中使用呀,但是你想想啊,加入你获取Calender的方法改变了那么你改动的话只需要改动一处即可,而不是每个方法都改一次,对不对。这样的话算是减少了代码的耦合度。或者说你不用提炼成一个方法直接写成public static Calendar cal = Calendar.getInstance();
这样你也不用每个类都写一次了。 - 不知道你
getBeginTimeOfYear
方法中Date date = null
有何意义 - 另外还有一个想法,题主可以考虑对Calendar的set方法进行包装一下,就如同我上面所说,当一段代码多次出现,就说明代码重复度太高,可以考虑提炼成方法。比如说我们都用过jdbc对吧,每次查数据或者插入数据时都需要使用jdbc的set或者get方法一一赋值,将他提炼成一个方法或者类,这样就提高了代码的可重复利用,下次你在要用的时候可以考虑把它打包成jar包。
- 就是这样ヾ(@^▽^@)ノ
这篇关于date - Java获取响应的日期时间,这样写是否合理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文