Java时间处理工具类

项目中用到的时间处理工具类,总结了下:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DateUtil {
	
	//hh表示的是12小时制,HH才是24小时制
	private static final String completeDateFormat = "yyyy-MM-dd HH:mm:ss";
	private static final String completeMMMDateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
	private static final String partDateFormat = "yyyy-MM-dd";
	
	/**
	 * 获取当前时间的标准格式
	 * @return
	 * test: System.out.println(DateUtil.getCurrentTime());
	 * 		 2017-03-13 17:14:11
	 */
	public static String getCurrentTime() {
		String returnStr = null;
		SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		returnStr = f.format(date);
		return returnStr;
	}
	
	/**
	 * 将时间按照一定格式转化为字符串格式
	 * @param date
	 * @param type
	 * @return
	 * test: System.out.println(DateUtil.ConvertDateToString(new Date(), "yyyy-MM-dd"));
	 * 		 2017-03-13
	 */
	public static String ConvertDateToString(Date date, String type) {
		if (date == null) {
			return null;
		}
		String result = "";
		SimpleDateFormat format = new SimpleDateFormat(type);
		result = format.format(date);
		return result;
	}
	
	/**
	 * 将时间字符串按照一定格式转化为字符串格式
	 * 
	 * @param str 转化为时间的字符串
	 * @param type 转化为时间的格式
	 * @return
	 * @throws ParseException
	 * test: System.out.println(DateUtil.ConvertStringToDate("1991-01-01 00:00:00", "yyyy-MM-dd HH:mm:ss"));
	 * 		 Tue Jan 01 00:00:00 CST 1991
	 */
	public static Date ConvertStringToDate(String str, String type)
			throws ParseException {
		DateFormat dd = new SimpleDateFormat(type);
		Date result = null;
		try {
			result = dd.parse(str);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return result;
	}
	
	/**
	 * 获取当前时间戳
	 * @return
	 * test: System.out.println(DateUtil.getNowDateTimeStr());
	 * 		 20170313180008958
	 */
	public static String getNowDateTimeStr() {
		return ConvertDateToString(new Date(), "yyyyMMddHHmmssSSS");
	}
	
	/**
	 * 根据给定数字得出/天/时/分/秒/毫秒
	 * @param msUsed
	 * @return
	 * test: System.out.println(DateUtil.timeToString(48373873));
	 * 		 13小时26分13秒
	 */
	public static String timeToString(long msUsed) {
		if (msUsed < 0L) {
			return String.valueOf(msUsed);
		}
		if (msUsed < 1000L) {
			return String.valueOf(msUsed) + "毫秒";
		}

		msUsed /= 1000L;
		if (msUsed < 60L) {
			return String.valueOf(msUsed) + "秒";
		}
		if (msUsed < 3600L) {
			long nMinute = msUsed / 60L;
			long nSecond = msUsed % 60L;
			return String.valueOf(nMinute) + "分" + String.valueOf(nSecond)
					+ "秒";
		}

		if (msUsed < 86400L) {
			long nHour = msUsed / 3600L;
			long nMinute = (msUsed - nHour * 3600L) / 60L;
			long nSecond = (msUsed - nHour * 3600L) % 60L;
			return String.valueOf(nHour) + "小时" + String.valueOf(nMinute) + "分"
					+ String.valueOf(nSecond) + "秒";
		}

		long nDay = msUsed / 86400L;
		long nHour = (msUsed - nDay * 86400L) / 3600L;
		long nMinute = (msUsed - nDay * 86400L - nHour * 3600L) / 60L;
		long nSecond = (msUsed - nDay * 86400L - nHour * 3600L) % 60L;
		return String.valueOf(nDay) + "天" + String.valueOf(nHour) + "小时"
				+ String.valueOf(nMinute) + "分" + String.valueOf(nSecond) + "秒";
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值