如何在java中使用DateUtils工具类对时间进行转换

本文章向大家介绍如何在java中使用DateUtils工具类对时间进行转换,主要包括如何在java中使用DateUtils工具类对时间进行转换的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

成都创新互联公司长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为东港企业提供专业的网站建设、网站设计东港网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

具体内容如下

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 map = new HashMap();
    map.put("date", new Date());
    String json = JSONObject.fromObject(map).toString();
    System.out.println(json);
  }
}

到此这篇关于如何在java中使用DateUtils工具类对时间进行转换的文章就介绍到这了,更多相关的内容请搜索创新互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持创新互联!


文章标题:如何在java中使用DateUtils工具类对时间进行转换
本文URL:http://scyanting.com/article/jeidoi.html