java针对于时间转换的DateUtils工具类

 更新时间:2017年12月08日 08:53:33   作者:lettle_redhat  
这篇文章主要为大家详细介绍了java针对于时间转换的DateUtils工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了时间转换的DateUtils工具类,供大家参考,具体内容如下

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;

/**
 * 时间日期工具类
 * 
 * @author wul
 * 2015-12-31
 */
public class DateUtil {

  public static final String DATE_NORMAL_FORMAT = "yyyy-MM-dd"; 
  public static final String DATETIME_NORMAL_FORMAT = "yyyy-MM-dd HH:mm:ss"; 
  public static final String DATE_COMPACT_FORMAT = "yyyyMMdd"; 
  public static final String DATETIME_COMPACT_FORMAT = "yyyyMMddHHmmss"; 
  public static final String YM_NORMAL_FORMAT = "yyyy-MM"; 
  public static final String YM_COMPACT_FORMAT = "yyyyMM"; 

  /**
   * String转Timestamp
   * @param dateStr
   * @return
   * @author wul
   * 2016-1-17
   */
  public static Timestamp stringToTimestamp(String dateStr) {
    try { 
      if(dateStr.length() <= 10) {
        dateStr += " 00:00:00";
      }
      return Timestamp.valueOf(dateStr); 
    } catch (Exception e) { 
      e.printStackTrace(); 
      return null;
    } 
  }

  /**
   * String转Date
   * @param dateStr
   * @param format
   * @return
   * @author wul
   * 2016-1-17
   */
  public static Date stringToDate(String dateStr, String format) {
    if(dateStr == null || "".equals(dateStr)){
      return null;
    }
    Date date = null; 
    //注意format的格式要与日期String的格式相匹配 
    SimpleDateFormat sdf = new SimpleDateFormat(format); 
    try { 
      date = sdf.parse(dateStr); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return date;
  }

  /**
   * Date转String
   * @param date
   * @param format
   * @return
   * @author wul
   * 2016-1-17
   */
  public static String dateToString(Date date, String format) {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    String currentDate = sdf.format(date);
    return currentDate;
  }

  /**
   * Date转Timestamp
   * @param date
   * @return
   * @author wul
   * 2016-1-17
   */
  public static Timestamp dateToTimestamp(Date date) {
    Timestamp ts = new Timestamp(date.getTime());
    return ts;
  }

  /**
   * Timestamp转String
   * @param ts
   * @return
   * @author wul
   * 2016-1-17
   */
  public static String timestampToString(Timestamp ts) {
    String tsStr = null; 
    SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT); 
    try { 
      tsStr = sdf.format(ts); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return tsStr;
  }

  /**
   * Timestamp转Date
   * @param ts
   * @return
   * @author wul
   * 2016-1-17
   */
  public static Date timestampToDate(Timestamp ts) {
    return ts;
  }

  /**
   * 获得当前时间并格式化:yyyy-MM-dd HH:mm:ss
   * @return
   */
  public static String getCurrentTimeNormal() {

    SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_NORMAL_FORMAT);
    String currentDate = sdf.format(new Date());
    return currentDate;
  }
  /**
   * 获得当前时间并格式化:yyyyMMddHHmmss
   * @return
   */
  public static String getCurrentTimeCompact() {

    SimpleDateFormat sdf = new SimpleDateFormat(DATETIME_COMPACT_FORMAT);
    String currentDate = sdf.format(new Date());
    return currentDate;
  }

  /**
   * 获得当前时间并格式化:yyyy-MM-dd
   * @return
   */
  public static String getCurrentDateNormal() {

    SimpleDateFormat sdf = new SimpleDateFormat(DATE_NORMAL_FORMAT);
    String currentDate = sdf.format(new Date());
    return currentDate;
  }

  /**
   * 获得当前时间并格式化:yyyyMMdd
   * @return
   */
  public static String getCurrentDateCompact() {

    SimpleDateFormat sdf = new SimpleDateFormat(DATE_COMPACT_FORMAT);
    String currentDate = sdf.format(new Date());
    return currentDate;
  }

  /**
   * 将20101202时间格式化为2010-12-02
   * 
   * @param DateString 时间格式:yyyyMMdd
   * @return
   */
  public static String getDateCompactToNormal(String DateString){

    StringBuilder sb = new StringBuilder();
    sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8));
    return sb.toString();
  }

  /**
   * 将20101202101423时间格式化为2010-12-02 10:14:23
   * 
   * @param DateString 时间格式:yyyyMMddHHmmss
   * @return
   */
  public static String getDateTimeCompactToNormal(String DateString){

    StringBuilder sb = new StringBuilder();
    sb.append(DateString.substring(0,4)).append("-").append(DateString.subSequence(4, 6)).append("-").append(DateString.substring(6, 8))
        .append(" ").append(DateString.substring(8, 10)).append(":").append(DateString.substring(10, 12)).append(":").append(DateString.substring(12));
    return sb.toString();
  }

  /**
   * 把界面输入的时间转为间凑的时间字符串
   * 将2010-12-02 10:14:23时间格式化为20101202101423
   * @param dateNormalStr String
   * @return String
   */
  public static String getCompactString(String dateNormalStr) {
    StringBuffer ret = new StringBuffer();
    try {
      ret.append(dateNormalStr.substring(0, 4));
      ret.append(dateNormalStr.substring(5, 7));
      ret.append(dateNormalStr.substring(8, 10));
      ret.append(dateNormalStr.substring(11, 13));
      ret.append(dateNormalStr.substring(14, 16));
      ret.append(dateNormalStr.substring(17, 19));
    } catch (Exception ex) {
      // 如果字串不够长度,则返回前面的部分
    }
    return ret.toString();
  }
  /**
   * 将20101202(101423)时间格式 获得年份
   * @param DateString  时间格式:yyyyMMdd(HHmmss)
   * @return
   */
  public static String getYear(String DateString){

    return DateString.substring(0,4);
  }

  /**
   * 将20101202(101423)时间格式 获得月份
   * @param DateString  时间格式:yyyyMMdd(HHmmss)
   * @return
   */
  public static String getMonth(String DateString){

    return DateString.substring(4,6);
  }

  /**
   * 将20101202时间格式 获得日期
   * @param DateString  时间格式:yyyyMMdd
   * @return
   */
  public static String getDayNoTime(String DateString){
    return DateString.substring(6);
  }

  /**
  * 获取当前日期之前的日期,按天数向前推
  * @param numVal
  * @param dateFormat
  * @return
  * @author wul
  * 2016-1-17
  */
  public static String getBeforeDatePlusDay(int numVal, String dateFormat) {
    Calendar calendar = Calendar.getInstance();
    long currentTimeMillis = calendar.getTimeInMillis();

    long hourInMillis = 60 * 60 * 1000;
    long dVal = numVal * 24 * hourInMillis;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    String currentDate = sdf.format(currentTimeMillis - dVal);
    return currentDate;
  }

  /**
   * 获取当前日期之前的日期,按天数向前推
   * @param numVal
   * @param dateFormat
   * @return
   * @author wul
   * 2016-1-17
   */
  public static String getAfterDatePlusDay(int numVal, String dateFormat) {
    Calendar calendar = Calendar.getInstance();
    long currentTimeMillis = calendar.getTimeInMillis();

    long hourInMillis = 60 * 60 * 1000;
    long dVal = numVal * 24 * hourInMillis;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    String currentDate = sdf.format(currentTimeMillis + dVal);
    return currentDate;
  }

  /**
   * 获取当前日期之前的日期,按小时向前推
   * @param numVal
   * @param dateFormat
   * @return
   * @author wul
   * 2016-1-17
   */
  public static String getBeforeDatePlusHour(int numVal, String dateFormat) {
    Calendar calendar = Calendar.getInstance();
    long currentTimeMillis = calendar.getTimeInMillis();

    long hourInMillis = 60 * 60 * 1000;
    long dVal = numVal * hourInMillis;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    String currentDate = sdf.format(currentTimeMillis - dVal);
    return currentDate;
  }

  /**
   * 获取当前日期之前的日期,按小时向前推
   * @param numVal
   * @param dateFormat
   * @return
   * @author wul
   * 2016-1-17
   */
  public static String getAfterDatePlusHour(int numVal, String dateFormat) {
    Calendar calendar = Calendar.getInstance();
    long currentTimeMillis = calendar.getTimeInMillis();

    long hourInMillis = 60 * 60 * 1000;
    long dVal = numVal * hourInMillis;

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
    String currentDate = sdf.format(currentTimeMillis + dVal);
    return currentDate;
  }

  /**
   * 两个日期相差天数
   * @param beginDate
   * @param endDate
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int daysBetween(Date beginDate, Date endDate) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(beginDate);
    long time1 = cal.getTimeInMillis();
    cal.setTime(endDate);
    long time2 = cal.getTimeInMillis();
    long between_days = (time2 - time1) / (1000 * 3600 * 24);
    return Integer.parseInt(String.valueOf(between_days));
  }

  /**
   * 获取某月天数
   * @param year
   * @param month
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getMonthdays(int year, int month) {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, month - 1);
    return cal.getActualMaximum(Calendar.DATE);
  }

  /**
   * 给时间加减年份
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusYear(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.YEAR, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 给时间加减月份
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusMonth(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MONTH, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 给时间加减天数
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusDay(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.DATE, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 给时间加减小时
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusHour(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.HOUR, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 给时间加减分钟
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusMinute(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MINUTE, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 给时间加减秒
   * @param date
   * @param plusTime
   * @return
   * @author wul
   * 2016-1-18
   */
  public static Date getDatePlusSecond(Date date, int plusTime) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.SECOND, plusTime);
    Date d = cal.getTime();
    return d;
  }

  /**
   * 返回当前年
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentYear() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(1);
  }

  /**
   * 返回当前月
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentMonth() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(2) + 1;
  }

  /**
   * 返回当前天
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentDay() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(5);
  }

  /**
   * 返回当前小时
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentHour() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(11);
  }

  /**
   * 返回当前分钟
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentMinute() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(12);
  }

  /**
   * 返回当前秒
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getCurrentSecond() {
    Calendar calendar = Calendar.getInstance();
    return calendar.get(13);
  }

  /**
   * 返回当前年
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getYear(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(1);
  }

  /**
   * 返回当前月
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getMonth(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(2) + 1;
  }

  /**
   * 返回当前天
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getDay(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(5);
  }

  /**
   * 返回当前小时
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getHour(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(11);
  }

  /**
   * 返回当前分钟
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getMinute(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(12);
  }

  /**
   * 返回当前秒
   * @return
   * @author wul
   * 2016-1-18
   */
  public static int getSecond(Date date) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    return calendar.get(13);
  }

  public static void main(String[] args) {
    System.out.println(DateUtil.dateToString(new java.sql.Date(System.currentTimeMillis()), DateUtil.DATE_NORMAL_FORMAT));
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("date", new Date());
    String json = JSONObject.fromObject(map).toString();
    System.out.println(json);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java中的private修饰符失效了?

    Java中的private修饰符失效了?

    这篇文章主要介绍了Java中的private修饰符失效了?本文讨论在一个内部类里面可以访问外部类的private成员变量或者方法的一种现象,需要的朋友可以参考下
    2015-01-01
  • Spring整合Struts2的两种方法小结

    Spring整合Struts2的两种方法小结

    下面小编就为大家带来一篇Spring整合Struts2的两种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • SpringBoot实现Md5对数据库数据加密的示例

    SpringBoot实现Md5对数据库数据加密的示例

    本文主要介绍了SpringBoot实现Md5对数据库数据加密的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • SpringBoot+Idea热部署实现流程解析

    SpringBoot+Idea热部署实现流程解析

    这篇文章主要介绍了SpringBoot+Idea热部署实现流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java JDK动态代理(AOP)用法及实现原理详解

    Java JDK动态代理(AOP)用法及实现原理详解

    在本篇文章了小编给大家整理的是一篇关于Java JDK动态代理(AOP)用法及实现原理详解内容,有需要的朋友们可以参考学习下。
    2020-10-10
  • 深入浅出讲解Spring框架中依赖注入与控制反转及应用

    深入浅出讲解Spring框架中依赖注入与控制反转及应用

    依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例
    2022-03-03
  • java实现订餐系统

    java实现订餐系统

    这篇文章主要为大家详细介绍了java实现订餐系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • spring boot打包成war包的页面如何存放

    spring boot打包成war包的页面如何存放

    这篇文章主要介绍了spring boot打包成war包的页面该放到哪里,很多朋友对这个问题都很疑惑,今天小编给大家分享一篇教程,需要的朋友可以参考下
    2019-11-11
  • Java之如何截取视频第一帧

    Java之如何截取视频第一帧

    这篇文章主要介绍了Java之如何截取视频第一帧问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java写入写出Excel操作源码分享

    Java写入写出Excel操作源码分享

    这篇文章主要介绍了Java写入写出Excel操作源码分享,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12

最新评论