Java 通过 Calendar 获取独立的 年月日时分秒 代码封装

 

最近,公司为保险公司提供一个人员行程数据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);
    }
}

 

posted @ 2020-06-11 10:13  迦南邪恋  阅读(1028)  评论(0编辑  收藏  举报