zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/mcqueen/p/13091605.html
Copyright © 2011-2022 走看看