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);
        }
    }
  • 相关阅读:
    json格式转换
    早该知道的7个JavaScript技巧
    SPFA加上SLF时判负环的条件
    HDU 4061 A Card Game
    线性筛法求素数
    STL之deque
    POJ 3219 二项式系数
    HDU 4296 Buildings
    HDU 4292 Food (成都赛区网络赛第五题,拆点网络流)
    拆点网络流(POJ3281)
  • 原文地址:https://www.cnblogs.com/mcqueen/p/13091605.html
Copyright © 2011-2022 走看看