java年月日工具类_java日期时间处理工具类 DateUtil

本文介绍了Java中用于日期时间处理的DateUtil工具类,包含日期格式化、毫秒数转换、Calendar对象处理等常见方法,并提供了示例代码,方便在项目中快速应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目里经常要遇到日期时间处理,一直都是手写SimpleDateFormat来转换,今天整理了下最基础的几个常用方法,如果有别的业务需求可以自己慢慢添加,话不多说上代码

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateUtil {

public final static String DATE_FORMAT_1 = "yyyy-MM-dd";

public final static String DATE_FORMAT_2 = "HH:mm:ss";

public final static String DATE_FORMAT_3 = "yyyy年MM月dd日";

public final static String DATE_FORMAT_4 = "HH时mm分ss秒";

public final static String DATE_FORMAT_5 = "yyyyMMddHHmmss";

/**

* 根据Date获取格式化数据

* @param date date对象

* @param format 格式

* @return 格式化后的数据

*/

public static String date2Str(Date date, String format ){

SimpleDateFormat sdf = new SimpleDateFormat(format);

return sdf.format(date);

}

/**

* 根据毫秒数获取格式化数据

* @param millis 毫秒数

* @param format 格式

* @return 格式化后的数据

*/

public static String millis2Str(String millis, String format){

return date2Str(new Date(Long.valueOf(millis)), format);

}

/**

* 根据Calendar获取格式化数据

* @param calendar Calendar对象

* @param format 格式

* @return 格式化后的数据

*/

public static String calendar2Str(Calendar calendar, String format){

return date2Str(new Date(calendar.getTimeInMillis()), format);

}

/**

* 根据格式化数据获取Date对象

* @param str 格式化数据

* @param format 格式

* @param defaultValue 在转换Date对象失败时返回默认Date对象

* @return 在转换Date对象失败时返回默认Date对象

*/

public static Date str2Date(String str, String format, Date defaultValue){

SimpleDateFormat sdf = new SimpleDateFormat(format);

try {

return sdf.parse(str);

} catch (ParseException e) {

return defaultValue;

}

}

/**

* 两个时间之间相差距离多少天,2018-01-30 16:24:00和2018-01-31 15:24:00相差0天

* @param date1 时间参数 1:

* @param date2 时间参数 2:

* @return 相差天数

*/

public static Long getDistanceDays(Date date1, Date date2){

long days;

long time1 = date1.getTime();

long time2 = date2.getTime();

long diff ;

if(time1

diff = time2 - time1;

} else {

diff = time1 - time2;

}

days = diff / (1000 * 60 * 60 * 24);

return days;

}

/**

*

* @param mss 要转换的毫秒数

* @param isAddSuffix 是否添加后续后缀,如:false,则不添加第一级以后的单位

* @return 该毫秒数转换为 * 天 * 小时 * 分钟 * 秒 后的格式

*/

public static String formatDuring(long mss, boolean isAddSuffix) {

long days = mss / (1000 * 60 * 60 * 24);

long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);

long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60);

long seconds = (mss % (1000 * 60)) / 1000;

String result = "";

if (days > 0){

result += days + "天";

if (!isAddSuffix){

return result;

}

}

if (hours > 0 ){

result += hours + "小时";

if (!isAddSuffix){

return result;

}

}

if (minutes > 0){

result += minutes + "分钟";

if (!isAddSuffix){

return result;

}

}

if (seconds > 0){

result += seconds + "秒";

}

return result;

}

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();

System.out.println(calendar2Str(calendar, DATE_FORMAT_1));

System.out.println(calendar2Str(calendar, DATE_FORMAT_2));

System.out.println(calendar2Str(calendar, DATE_FORMAT_3+" "+DATE_FORMAT_4));

System.out.println(millis2Str(System.currentTimeMillis()+"", DATE_FORMAT_1));

System.out.println(millis2Str(System.currentTimeMillis()+"", DATE_FORMAT_2));

System.out.println(millis2Str("1517277843000", DATE_FORMAT_1+" "+DATE_FORMAT_2));

System.out.println(formatDuring(1000*60*60*24*2+1000*60*2, true));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值