您的位置:首页 > 其它

日期格式化、时间差转换

2017-06-05 16:20 113 查看
在项目中,难免会遇到日期转换或者计算时间差的,于是就整合成了一个util,方便以后使用。以下是代码

package com.magingunion.framework.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtil {

/**
* 将时间字符串转换为Date类型
* @param dateStr
* @return Date
*/
public static Date toDate(String dateStr) {
Date date = null;
SimpleDateFormat formater = new SimpleDateFormat();
formater.applyPattern("yyyy-MM-dd ");
try {
date = formater.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

/**
* 按照提供的格式将字符串转换成Date类型
* @param dateStr
* @param formaterString
* @return
*/
public static Date toDate(String dateStr, String formaterString) {
Date date = null;
SimpleDateFormat formater = new SimpleDateFormat();
formater.applyPattern(formaterString);
try {
date = formater.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

/**
* 将Date类型时间转换为字符串
* @param date
* @return
*/
public static String toString(Date date) {

String time;
SimpleDateFormat formater = new SimpleDateFormat();
formater.applyPattern("yyyy-MM-dd");
time = formater.format(date);
return time;
}

/**
* 按照参数提供的格式将Date类型时间转换为字符串
* @param date
* @param formaterString
* @return
*/
public static String toString(Date date, String formaterString) {
String time;
SimpleDateFormat formater = new SimpleDateFormat();
formater.applyPattern(formaterString);
time = formater.format(date);
return time;
}

/**
*
*功能:计算时间差
*@param startTime
*@param endTime
*@return
*/
public static String dateDiff(String startTime, String endTime) {

// 按照传入的格式生成一个simpledateformate对象
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
long nh = 1000 * 60 * 60;// 一小时的毫秒数
long nm = 1000 * 60;// 一分钟的毫秒数
long ns = 1000;// 一秒钟的毫秒数
long diff;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
// 获得两个时间的毫秒时间差异
try {
diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
day = diff / nd;// 计算差多少天
hour = diff % nd / nh + day * 24;// 计算差多少小时
min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟
sec = diff % nd % nh % nm / ns;// 计算差多少秒
// 输出结果
System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时"
+ (min - day * 24 * 60) + "分钟" + sec + "秒。");
System.out.println("hour=" + hour + ",min=" + min);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(min<=60){
return  min - day * 24 * 60+"分钟";
}else if(min>60 && hour<24){
return
4000
(hour - day * 24) + "小时" + (min - day * 24 * 60) + "分钟";
}else {
return  day + "天" + (hour - day * 24) + "小时" + (min - day * 24 * 60) + "分钟";
}
}

/**
*
*功能: 小时差
*@param startTime
*@param endTime
*@return
*/
public static String hourDiff(String startTime, String endTime) {

// 按照传入的格式生成一个simpledateformate对象
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数
long nh = 1000 * 60 * 60;// 一小时的毫秒数
long nm = 1000 * 60;// 一分钟的毫秒数
long ns = 1000;// 一秒钟的毫秒数
long diff;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
// 获得两个时间的毫秒时间差异
try {
diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();
day = diff / nd;// 计算差多少天
hour = diff % nd / nh + day * 24;// 计算差多少小时
min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟
sec = diff % nd % nh % nm / ns;// 计算差多少秒
// 输出结果
System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时"
+ (min - day * 24 * 60) + "分钟" + sec + "秒。");
System.out.println("hour=" + hour + ",min=" + min);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return String.valueOf(hour);
}

}


在项目开发中还是很实用的,在此处记下来。`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息