zoukankan      html  css  js  c++  java
  • java 日期工具类DateUtils

    日期工具类DateUtils

    CreateTime--2017年5月27日08:48:00
    Author:Marydon

      DateUtils.java-对日期类的进一步封装

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * 封装日期类
     * 
     * @author Marydon
     * @createTime 2017年5月27日上午8:49:50
     * @updateTime
     * @Email:Marydon2017@163.com
     * @version:1.0.0
     */
    public class DateUtils {
        /**
         * 对日期进行格式化
         * @param date 
         *     要转换的日期
         * @param pattern
         *     希望转换成什么样的格式
         * @return str
         *     格式化后的日期字符串
         */
        public static String dateFormat(Date date, String pattern){
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            String str = sdf.format(date);
            return str;
        }
    
        /**
         * 根据初始日期推算期望(向前/向后)日期
         * @param initTime
         *     初始日期(initTime可以是null、Date、String数据类型)
         * @param n
         *     向前/向后推算n天(n可以是正整数、0、负整数)
         * @return
         *     推算后的日期字符串
         */
        public static String getCalculateDay(Object initTime,int n){
            // 返回推算后的日期
            String calculateDay = "";
            try {
                // 实例化日历类Calendar
                Calendar calendar = Calendar.getInstance();  
                // 定义日期格式化样式
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                // 初始日期
                Date initDate = null;
                // 判断参数类型
                if (null == initTime) {
                    // 取系统当前时间
                    initDate = new Date();
                } else if (initTime instanceof Date) {
                    initDate = (Date)initTime;
                } else {
                    // 日期格式字符串转换成日期类Date
                    initDate = sdf.parse((String)initTime);
                }
                // 设置日历时间
                calendar.setTime(initDate);
                // 设置推算后的日历时间
                calendar.add(Calendar.DATE, n);
                // 获取推算后的日期
                Date calculateDate = calendar.getTime();
                // 进行格式化
                calculateDay = sdf.format(calculateDate);
            } catch(ParseException e) {
                return calculateDay;
            }
            return calculateDay;
        } 
    }    
      根据初始日期推算期望(向前/向后)日期之方法二
    /**
         * 根据初始日期推算期望(向前/向后)日期
         * @param initTime
         *     初始日期
         * @param n
         *     向前/向后推算n天
         * @return
         *     推算后的日期
         */
        public static String getCalculateDay(Object initTime,int n) throws ParseException{  
            // 返回推算后的日期
            String calculateDay = "";
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            // 初始日期
            Date initDate = null;
            
            if (initTime instanceof Date) 
              initDate = (Date)initTime;
            else
              initDate = sdf.parse((String)initTime);
            // 转换成距离1970年0时0分的毫秒数
            Long initMilliSeconds = initDate.getTime();
            // 一天代表的毫秒数
            int oneDayTime = 24 * 60 * 60 * 1000;
            initMilliSeconds += oneDayTime * n;
            
            // 推算出的日期
            Date calculateDate = new Date(initMilliSeconds);
            calculateDay = sdf.format(calculateDate);
            return calculateDay;
        }

      UpdateTime--2017年8月10日17:12:21

      获取系统当前时间

      方法一:

        调用上面的DateUtils.dateFormat(new Date(),"yyyy-MM-dd") 即可

      方法二:

    public static Calendar calendar = Calendar.getInstance();
    /**
     * 获取当前年份
     * 
     * @return
     */
    public static int getCurYear() {
        return calendar.get(Calendar.YEAR);
    }
    
    /**
     * 获取当前月份
     * 
     * @return
     */
    public static int getJCMMonth() {
        return calendar.get(Calendar.MONTH) + 1;
    }
    
    /**
     * 获取当前天
     * 
     * @return
     */
    public static int getJCMDay() {
        return calendar.get(Calendar.DATE);
    }
    
    /**
     * 获取当前月份(01,02,03......11,12)
     * 
     * @return
     */
    public static String getJCMMonthF() {
        return formatDate(calendar.get(Calendar.MONTH) + 1);
    }
    
    /**
     * 获取当前天(01,02,03......29,30)
     * 
     * @return
     */
    public static String getJCMDayF() {
        return formatDate(calendar.get(Calendar.DATE));
    }
    
    /**
     * 把月份和日期修改为两位数字
     * 
     * @param date
     * @return
     */
    public static String formatDate(int date) {
        String date2 = "0";
        if (date <= 9) {
            date2 += String.valueOf(date);
        } else {
            date2 = String.valueOf(date);
        }
        return date2;
    }

      测试:

    // 获取系统当前时间
    // 方式一
    // 1.这种方式返回的月和日如果没有值小于10,不会自动加0;
    // 2.int转String,直接拼接字符串会自动将结果转换成String
    System.out.println(getCurYear() + "-" + getJCMMonth() + "-" + getJCMDay());//2017-8-9
    // 方式二
    System.out.println(getCurYear() + "-" + getJCMMonthF() + "-" + getJCMDayF());//2017-08-09                 
  • 相关阅读:
    更换Ubuntu源为国内源的操作记录
    Dockerfile构建容器镜像
    Nginx负载均衡中后端节点服务器健康检查
    Linux系统下CPU使用(load average)梳理
    android:怎么实现一个控件与另一个指定控件左对齐
    Android Studio一直 Fetching Documentation...
    px、pt、ppi、dpi、dp、sp之间的关系
    Android中如何在代码中设置View的宽和高?
    硬中断与软中断的区别!
    Java 日期时间获取和显示
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6911424.html
Copyright © 2011-2022 走看看