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

    package com.kpzc.utils;
    
    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:鲲鹏展翅
     * @description: 操作时间的工具类
     */
    public class DateTools {
        
        public static final String JAVA_DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
        public static final String JAVA_YMDHMS_FORMAT = "yyyyMMddHHmmss";
        public static final String JAVA_Y_M_D_FORMAT = "yyyy-MM-dd";
        public static final String JAVA_YMD_FORMAT = "yyyyMMdd";
        public static final String SQL_DEFAULT_FORMAT = "YYYY-MM-DD HH24:MI:SS";
        public static final String SQL_YMDHMS_FORMAT = "YYYYMMDDHH24MISS";
        public static final String SQL_Y_M_D_FORMAT = "YYYY-MM-DD";
        public static final String SQL_YMD_FORMAT = "YYYYMMDD";
        
        /**
         * @return 获取Calendar
         */
        public static Calendar getCalendar(){
            return  Calendar.getInstance();
        }
        
        /**
         * 获取SimpleDateFormat
         * @param format
         * @return
         */
        public static SimpleDateFormat getSDF(String pattern){
            return new SimpleDateFormat(pattern);
        }
        
        /**
         * 获取DateFormat
         * @param format
         * @return
         */
        public static DateFormat getDF(String pattern){
            return getSDF(pattern);
        }
        
        /**
         * 获取yyyy-MM-dd HH:mm:ss格式的当前日期
         * @return
         */
        public static String getCurrDateTime(){
            return getStringDate(new Date());
        }
        
        public static String getStringDate(Date date){
            if(date == null)
                return null;
            return getStringDate(date,JAVA_DEFAULT_FORMAT);
        }
        
    
        public static String getStringDate(Date date,String pattern){
            if(date == null || "null".equals(pattern)|| null == pattern || ""==pattern || "NULL".equals(pattern)){
                return null;
            }
            return getSDF(pattern).format(date);
        }
        
        /**
         * 获取当前时间的时间戳
         * @return
         */
        public static long getCurrTimetemp(){
            return System.currentTimeMillis();
        }
        
        /**
         * 日期转时间戳
         * @param dateStr
         * @return
         */
        public static long getCurrTimetemp(Date dateStr){
            return getTimetemp(dateStr);
        }
        
        public static long getTimetemp(Date date){
            if(date == null)
                return 0;
            return date.getTime();
        }
        
        /**
         * 判断是不是pattern格式的日期
         * @param strDate
         * @param pattern
         * @return true 正确 false 不正确
         */
        public static boolean isValidDate(String strDate, String pattern) {
            if (strDate == null)
                return false;
            try {
                getSDF(pattern).parse(strDate);
                return true;
            } catch (Exception e) {
                // 格式不对
                return false;
            }
        }
    
        /**
         *  时间戳转换成时间
         * @param timeStamp
         * @param pattern
         * @return
         */
        public static String timeStampToDate(Long timeStamp,String pattern){
            return getSDF(pattern).format(timeStamp);
        }
    
        /**
         * date转string
         * @param date
         * @param type
         * @return
         */
        public static String dateToString(Date date, String type) {
            String str = null;  
            DateFormat format = getDF("yyyy-MM-dd");  
            if (type.equals("SHORT")) {  
                // 07-1-18  
                format = DateFormat.getDateInstance(DateFormat.SHORT);  
                str = format.format(date);  
            } else if (type.equals("MEDIUM")) {  
                // 2007-1-18  
                format = DateFormat.getDateInstance(DateFormat.MEDIUM);  
                str = format.format(date);  
            } else if (type.equals("FULL")) {  
                // 2007年1月18日 星期四  
                format = DateFormat.getDateInstance(DateFormat.FULL);  
                str = format.format(date);  
            }else if (type.equals("LONG")) {  
                // Date转化成  2017年11月1日
                format = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINESE);
                str = format.format(date);  
            }    
            return str;  
        }  
    
        /**
         * string类型的时间转为日期格式
         * Date是日期对象,并不是字符串。 当你打印Date对象时,java虚拟机默认调用了此对象的toString()方法。
         * 此方法输出的国际标准日期格式。并不是说Date对象是这个格式。
         * Date对象在保存日期时使用的是一个长整数。不存在哪种格式,只有输出到字符串时才有所谓的格式!
         * @param string string类型的时间
         * @param pattern  时间格式
         * @return
         * @throws ParseException
         */
        public static Date stringToDate(String string, String pattern){  
            Date date = null;
            try {
                date = getSDF(pattern).parse(string);
            } catch (ParseException e) {
                e.printStackTrace();
            }  
            return date;  
        }
        
        /**
         * @return 获取当前年
         */
        public static int getYear(){
            return getCalendar().get(Calendar.YEAR);
        }
        
        /**
         * @return 获取当前月
         */
        public static int getMonth(){
            return getCalendar().get(Calendar.MONTH)+1;
        }
        
        /**
         * @return 获取当前日
         */
        public static int getDay(){
            return getCalendar().get(Calendar.DATE);
        }
        
        public static void main(String[] args) {
            String str = "2018-12-24";  
            System.out.println(isValidDate(str, JAVA_Y_M_D_FORMAT));
            System.out.println(getCurrDateTime());//获取yyyy-MM-dd HH:mm:ss格式的当前日期
            System.out.println(getCurrTimetemp());//获取当前时间的时间戳
            String sd =timeStampToDate(getCurrTimetemp(),JAVA_DEFAULT_FORMAT);//当前时间的时间戳转换成时间
            System.out.println("格式化结果:" + sd);
            String sd2 =timeStampToDate(1536643499744L,JAVA_DEFAULT_FORMAT);//某时间戳转换成时间
            System.out.println("格式化结果:" + sd2);
            System.out.println("stringToDate:"+stringToDate(str,JAVA_Y_M_D_FORMAT)); //打印时间对象
            System.out.println(getCurrTimetemp(stringToDate(str,JAVA_Y_M_D_FORMAT)));//某日期转时间戳
            String sd3 =timeStampToDate(getCurrTimetemp(stringToDate(str,JAVA_Y_M_D_FORMAT)),JAVA_Y_M_D_FORMAT);//某时间戳转换成时间
            System.out.println("格式化结果:" + sd3);
            //传入的year参数,应该为“目标年份”-1900,
            //月份需要-1;
            Date date1 = new Date(2018-1900,1-1,10);  
            System.out.println("当前时间是:"+date1.toLocaleString()); 
            System.out.println(dateToString(date1, "MEDIUM"));//date转string 
            System.out.println(dateToString(date1, "LONG"));
            
            System.out.println(getYear());
            System.out.println(getMonth());
            System.out.println(getDay());
            
        }
    }
  • 相关阅读:
    开源 免费 java CMS FreeCMS功能说明单位管理
    用Spring让Java Mail支持简化邮件发送
    Java Mail简化邮件发送+附件发送(源码奉上)
    java common practice to rethrow exceptions
    浅谈Java内存泄露
    全局样式
    求最大公约数和最小公倍数
    求所有水仙花数
    indexedDB数据库的使用
    fileReader读取文件
  • 原文地址:https://www.cnblogs.com/zjk1/p/9627454.html
Copyright © 2011-2022 走看看