DateUtils 时间日期相关工具类,字符串与日期互转,时间的偏移量


前言

与时间有关的操作,字符串与日期的相关转换,时间的偏移量等等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、字符串与日期互转

1.返回系统当前时间(精确到毫秒),作为一个唯一的编号

/**
* yyyyMMddHHmmss
*/
public static final String DATE_FORMAT_NOSPLIT = "yyyyMMddHHmmss";

/**
* 返回系统当前时间(精确到毫秒),作为一个唯一的编号,并发量不高可以使用
*
* @return 以yyyyMMddHHmmss为格式的当前系统时间
*/
public static String getOrderNum() {
   Date date = new Date();
   DateFormat df = new SimpleDateFormat(DATE_FORMAT_NOSPLIT);
   return df.format(date);
}

2.将秒数改为xx天xx小时xx分xx秒

/**
 * 将秒数改为 xx天xx小时xx分xx秒
 * 如 formatTime(60) --> 1分
 * 如 formatTime(70) --> 1分10秒
 * 类推
 */
public static String formatTime(Long t) {
    return isEmpty(t) ? "" : formatTime(t.intValue(), false);
}

public static String formatTime(int t) {
    return isEmpty(t) ? "" : formatTime(t, false);
}

public static String formatTime(int t, boolean isShowEmpty) {
    int[] s = {60, 60, 24, 365, 1000000};
    String[] ss = {"秒", "分", "小时", "天", "年"};
    String r = "";
    for (int i = 0; i < s.length; i++) {
        r = (t % s[i] == 0 && !isShowEmpty) ? r : t % s[i] + ss[i] + r;
        t = (t / s[i]);
        if (t == 0) { break; }
    }
    return r;
}

public static boolean isEmpty(Object obj) {
    return obj == null;
}

3.将Date转换成字符串

// 默认日期格式:yyyy-MM-dd HH:mm:ss
public static final String DATE_FORMAT_COMMON = "yyyy-MM-dd HH:mm:ss";

/**
 * 将Date转换成字符串
 *
 * @param date   Date 要转换的Date实例
 * @param format String 日期格式字符串
 * @return String
 */
public static String date2String(Date date, String format) {
    if (date == null) {
        return "";
    }
    SimpleDateFormat sdf = null;
    try {
        sdf = new SimpleDateFormat(format);
    } catch (Exception e) {
        sdf = new SimpleDateFormat(DATE_FORMAT_COMMON);
        log.debug("====DateUtils.date2String(" + date + "," + format);
    }
    return sdf.format(date);
}

/**
 * 将Date类转换成字符串形式,使用默认的格式做转换. yyyy年MM月dd日 HH:mm:ss
 *
 * @param date Date
 * @return String
 */
public static String date2String(Date date) {
    return date2String(date, DATE_FORMAT_COMMON);
}

4.将Date转换成字符串(年、月、日)

// yyyy
public static final String DATE_FORMAT_YEAR = "yyyy";
// yyyy-MM 
public static final String DATE_FORMAT_MONTH = "yyyy-MM";
// yyyy-MM-dd 
public static final String DATE_FORMAT_DAY = "yyyy-MM-dd";

// 将Date转换成字符串(天),return调用的是3中的方法
public static String date2StringDay(Date date) {
    return date2String(date, DATE_FORMAT_DAY);
}
// 将Date转换成字符串(月)
public static String date2StringMonth(Date date) {
    return date2String(date, DATE_FORMAT_MONTH);
}
// 将Date转换成字符串(年)
public static String date2StringYear(Date date) {
    return date2String(date, DATE_FORMAT_YEAR);
}

5.得到字符串形式的当前时间

/**
 * 得到字符串形式的当前时间,日期格式采用默认的格式.
 *
 * @return String
 */
public static String getCurrentDate() {
    Date date = new Date();
    return date2String(date, DATE_FORMAT_COMMON);
}

/**
 * 得到字符串形式的当前时间
 * @param dateFormat 要返回的格式
 * @return String
 */
public static String getCurrentDate(String dateFormat) {
    Date date = new Date();
    return date2String(date, dateFormat);
}

6.将字符串格式的日期转换成日期

/**
 * 将字符串格式的日期转换成日期,格式yyyy-MM-DD
 *
 * @param date String
 * @return Date
 */
public static Date string2Date(String date) {
    return string2Date(date, DATE_FORMAT_COMMON);
}

public static Date string2Date(String date, String dateFormat) {
    if (Utils.isEmpty(date)) {
        return null;
    }
    try {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        long time = sdf.parse(date).getTime();
        return new Date(time);
    } catch (Exception e) {
        log.error("unsupported date format : " + date);
        log.error(e.getMessage(), e);
        return null;
    }
}

// 国际化时间
public static Date string2DateI18n(String date, String dateFormat, Locale locale) {
  if (Utils.isEmpty(date))
        return null;
    try {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, locale);
        long time = sdf.parse(date).getTime();
        return new Date(time);
    } catch (Exception e) {
        log.error("unsupported date format : " + date);
        throw new ParamException("时间格式不正确:" + date + ",正确格式:" + dateFormat);
    }
}

二、日期偏移计算

本部分内容为:传入日期得到其偏移秒数、偏移分钟、偏移小时、偏移天、偏移周、偏移月、偏移年、当月最后一天、当前时间前一天、得到当前时间开始时间与结束时间等等与之相关的操作,后续待补充。。。


总结

你会有你的卑微 ,但你也有属于你的骄傲,用你自己的自信去诠释属于你的骄傲。

在这里插入图片描述

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值