最近,公司为保险公司提供一个人员行程数据Api接口,当中业务逻辑中涉及到大量的日期对象处理与判断。
之前,一直是用C#(Asp.Net)进行日期处理,一个 DateTime.Now 基本上可以得到一切结果.
但是,在Java 中就不行了,虽然也有 Date 这个对象中提供的一些直接获取日期的方法,但是都已经被官网标准为不推荐使用状态了,
官网推荐使用 Calendar 这个对象结合 Date 去使用,既然不推荐那就不用。
直接上封装好的代码:
package xingzhi.tools; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; /** * 对象帮助类. * @author xingzhi 2020年4月28日 上午9:12:32 * */ public class DateHelper { /** * 日历对象 * @author xingzhi 2020年6月5日 下午4:22:32 */ private static Calendar cal; /** * 初始化日历对象. * @author xingzhi 2020年6月5日 上午9:16:27 */ private static void Initial() { if(cal == null) { cal = Calendar.getInstance(); } } /** * 获取当前时间对象 * @author xingzhi 2020年4月28日 下午9:11:54 * @return */ public static Date GetCurrentDate() { Date d = new Date(); return d; } /** * 获取指定日期的年. * @author xingzhi 2020年6月5日 下午4:23:26 * @param d * @return */ public static int GetDateForYear(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.YEAR); } /** * 获取指定日期的月份 * @author xingzhi 2020年6月5日 上午9:24:17 * @return 返回一个整数表示的月份值.从0-11. */ public static int GetDateForMonth(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.MONTH); } /** * 获取指定日期每月的天数. * @author xingzhi 2020年6月5日 上午9:29:58 * @param d * @return */ public static int GetDateForDay(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.DATE); } /** * 获取指定日期的小时数. * @author xingzhi 2020年6月5日 上午9:32:21 * @return */ public static int GetDateForHour(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.HOUR); } /** * 获取指定日期的分钟数. * @author xingzhi 2020年6月5日 上午9:32:21 * @return */ public static int GetDateForMinute(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.MINUTE); } /** * 获取指定日期的秒数. * @author xingzhi 2020年6月5日 上午9:32:21 * @return */ public static int GetDateForSecond(Date d) { Initial(); cal.setTime(d); return cal.get(Calendar.SECOND); } }
使用方法
package xingzhi.test; import xingzhi.tools.DateHelper;public class Testing { /** * 测试函数入口 * @author xingzhi 2020年6月11日 上午9:22:17 * @param args */ public static void main(String[] args) { TestingDate(); }/** * 日期帮助类测试 * @author xingzhi 2020年6月11日 上午9:46:33 */ static void TestingDate() { Output("当前日期:" + DateHelper.GetCurrentDate()); Output("当前年:" + DateHelper.GetDateForYear(DateHelper.GetCurrentDate())); Output("当前月:" + DateHelper.GetDateForMonth(DateHelper.GetCurrentDate())); Output("当前日:" + DateHelper.GetDateForMonth(DateHelper.GetCurrentDate())); Output("当前时:" + DateHelper.GetDateForHour(DateHelper.GetCurrentDate())); Output("当前分:" + DateHelper.GetDateForMinute(DateHelper.GetCurrentDate())); Output("当前秒:" + DateHelper.GetDateForSecond(DateHelper.GetCurrentDate())); } /** * 记录输出 * @author xingzhi 2020年6月11日 上午10:10:57 * @param obj */ static void Output(Object obj) { System.out.println(obj); } }