• 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);
        }
    }
  • 相关阅读:
    大数据技术学习之Spark技术总结
    PS教程之利用像素化来制作一个乐高积木的创意海报
    Java教程之SpringMVC的请求和响应
    GCC中 -I、-L、-l 选项的作用
    给阿里云主机添加swap分区,解决问题:c++: internal compiler error: Killed (program cc1plus)
    使用 C++11 编写可复用多线程任务池
    Go语言学习-函数
    Goland安装与配置
    Go语言学习-基础知识
    VSCode配置Go插件和第三方拓展包
  • 原文地址:https://www.cnblogs.com/mcqueen/p/13091605.html
Copyright © 2020-2023  润新知