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);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM