当前位置: 首页 > 编程笔记 >

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

韦晟睿
2023-03-14
本文向大家介绍java针对于时间转换的DateUtils工具类,包括了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);
  }
}

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

 类似资料:
  • 场景: 如下图, 红框中的数据是后台传过来的时间, 因为是一串字符串, 在 ts 中我就没办法对这个时间做处理 (例如转成数字、获取年月日等) 对应的 ts 代码 问题简述1: 我在model中定义的 createTime 和 updateTime, 都是 number 类型, 并且我在接收 res 时候已经指定接收对象是一个 Icon 类型的数组了, 但为什么我最终 res.icons[0].c

  • 本文向大家介绍javaScript日期工具类DateUtils详解,包括了javaScript日期工具类DateUtils详解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javaScript日期工具类的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍java时间戳与日期相互转换工具详解,包括了java时间戳与日期相互转换工具详解的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了java日期与时间戳相互转换大全,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 一、简介 京东小程序转换器,是京东官方团队提供的一款真正实现小程序一键转换的工具,帮助开发者提升开发效率,无需再为维护多套代码仓库而烦恼,让京东小程序的开发流程变得轻松而愉悦。 工具特性如下: 一键转换,可视化操作,简单易用 配备详细的文档操作说明,简单易学 转换过程搭配丰富的日志输出,直观明了 满足绝大多数转换工作需要,性能优越 二、使用说明 1、打开待转化小程序: 点击左侧栏“打开”,打开一个

  • 等高线生成        在“工具”菜单栏中点击等高线生成,弹出对话框如下。        加载要生成等高线的地形高程数据,设置导出的文件位置(最后生成为.shp文件),根据已有的地形高程数据进行设置合适的等高线间距(间距大于地形高程则无法生成),点击生成等高线。        点击查看等高线点击查看等高线如图,可以导入可加载shp格式的软件中查看。如果需要预览一片区域的等高线效果,请使用“等高线

  • 本文向大家介绍C 指针和OC 对象之间的转换方法,包括了C 指针和OC 对象之间的转换方法的使用技巧和注意事项,需要的朋友参考一下 Core Foundation 框架 Core Foundation 框架 (CoreFoundation.framework) 是一组 C 语言接口, 简称 CF. 它们为 iOS 应用程序提供基本数据管理和服务功能. 如 Core Graphics、Core Te