日期工具类

Posted zjk1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期工具类相关的知识,希望对你有一定的参考价值。

package com.shixun.ewifi.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
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";
    
    /**
     * 获取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 format){
        if(date == null || "null".equals(format)|| null == format || ""==format || "NULL".equals(format)){
            return null;
        }
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        return sdf.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) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        if (strDate == null)
            return false;
        try {
            dateFormat.parse(strDate);
            return true;
        } catch (Exception e) {
            // 格式不对
            return false;
        }
    }

    /**
     *  时间戳转换成时间
     * @param timeStamp
     * @param format
     * @return
     */
    public static String timeStampToDate(Long timeStamp,String format){
        SimpleDateFormat sdf=new SimpleDateFormat(format);
        return sdf.format(timeStamp);
    }

    /**
     * date转string
     * @param date
     * @param type
     * @return
     */
    public static String dateToString(Date date, String type) {
        String str = null;  
        DateFormat format = new SimpleDateFormat("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){  
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);  
        Date date = null;
        try {
            date = simpleDateFormat.parse(string);
        } catch (ParseException e) {
            e.printStackTrace();
        }  
        return 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"));
    }
}

 

以上是关于日期工具类的主要内容,如果未能解决你的问题,请参考以下文章

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

日期工具类

在片段中创建日期选择器

常用python日期日志获取内容循环的代码片段

软输入键盘隐藏编辑文本

JS代码片段:一个日期离现在多久了