日期工具类
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")); } }
以上是关于日期工具类的主要内容,如果未能解决你的问题,请参考以下文章