Java常用时间工具方法总结

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/*
 * 获取各种时间的工具类
 */
public class TimeUtils{
	/**
	 * @return 获取当前17位的毫秒级时间
	 */
	public static String getCurrMillTime(){
        Date date=new Date();
		 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
        return sdf.format(date);
    }
	/**
	 * @return 获取当前14位的秒级时间
	 */
	public static String getCurrTime(){
        Date date=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
        return sdf.format(date);
    }
	/**
	 * @param minute 延后的分钟数
	 * @return 当前时间后minute分钟的17位毫秒级时间 
	 */
	public static String getNextMillTimeByMinute(int minute){
		Calendar calendar=Calendar.getInstance();
		calendar.add(Calendar.MINUTE, minute);
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
        return sdf.format(calendar.getTime());
    }
	/**
	 * @param time yyyyMMddHHmmss时间字符串
	 * @return yyyy-MM-dd HH:mm:ss字符串
	 * @throws ParseException 
	 */
	public static String getDateString(String time) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
		Date date=sdf.parse(time);
		SimpleDateFormat sdfNew=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return sdfNew.format(date);
	}
	/**
	 * @param date
	 * @return 由2017-11-22 09:20:12得到20171122092012
	 * @throws ParseException
	 */
	public static String getTimeByDateTime(String date) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date newDate=sdf.parse(date);
		SimpleDateFormat sdfNew=new SimpleDateFormat("yyyyMMddHHmmss");
		return sdfNew.format(newDate);
	}
	/**
	 * @param startDate 20171230类似的8位字符串
	 * @return 		  获得2017-12-30类似的日期
	 * @throws ParseException 
	 */
	public static String getDateSringByDate(String date) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
		Date newDate=sdf.parse(date);
		SimpleDateFormat sdfNew=new SimpleDateFormat("yyyy-MM-dd");
		return sdfNew.format(newDate);
	}
	/**
	 * @param date yyyy-MM-dd日期时间
	 * @return yyyyMMdd
	 * @throws ParseException
	 */
	public static String getNumberStringByDate(String date) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Date newDate=sdf.parse(date);
		SimpleDateFormat sdfNew=new SimpleDateFormat("yyyyMMdd");
		return sdfNew.format(newDate);
	}
	/**
	 * @param date 2017年11月02日
	 * @return 20171102
	 * @throws ParseException
	 */
	public static String getNumberByDate(String date) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
		Date newDate=sdf.parse(date);
		SimpleDateFormat sdfNew=new SimpleDateFormat("yyyyMMdd");
		return sdfNew.format(newDate);
	}
	/**
	 * 获得databaseTime之后,validTimeH小时后的时间
	 * @param databaseTime validTimeH
	 * @return yyyyMMddHHmmssSSS
	 * @throws ParseException 
	 */
	public static String getNextHours(String databaseTime,int validTimeH) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
		Date date=sdf.parse(databaseTime);
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.HOUR, validTimeH);
        return sdf.format(calendar.getTime());
	}
	/**
	 * 获得databaseTime之后,codeValidM分钟后的时间
	 * @param databaseTime validTimeH
	 * @return yyyyMMddHHmmssSSS
	 * @throws ParseException 
	 */
	public static String getNextMinutes(String databaseTime,int codeValidM) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
		Date date=sdf.parse(databaseTime);
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MINUTE, codeValidM);
        return sdf.format(calendar.getTime());
	}
	/*public static void main(String [] args) {
		try {
			System.out.println(getNextMinutes("20170102113020345",10));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}*/
	/**
	 * 获取datebasetime的1毫秒后的17位毫秒级时间
	 * @param datebaseTime
	 * @return
	 * @throws ParseException 
	 */
	public static String getNextMill(String datebaseTime) throws ParseException {
		SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
		Date date=sdf.parse(datebaseTime);
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MILLISECOND, 1);
        return sdf.format(calendar.getTime());
	}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class TimeUtils {
	
	public static final String month_format =  "yyyyMM";
	public static final String day_format =  "yyyyMMdd";
	public static final String second_format =  "yyyyMMddHHmmss";
	public static final String second_str_format = "yyyy-MM-dd HH:mm:ss";
	public static final String millSecond_format =  "yyyyMMddHHmmssSSS";

	/**
	 * 按格式返回当前时间串
	 * @param format 时间格式
	 * @return 时间串
	 */
	public static String getCurrTimeStr(String format) {
		Date now=new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        return simpleDateFormat.format(now);
	}
	/**
	 * 按要求计算时间后返回
	 * @param time 传入的时间
	 * @param format 传入的时间格式
	 * @param field	时间改变的单位 举例:静态常量(数值)Calendar.DATE(5)天 Calendar.HOUR_OF_DAY(11)时  Calendar.MILLISECOND(14)  Calendar.SECOND(13)
	 * @param i 时间改变的量  正数是增量  负数是减量即往前计算
	 * @param resultFormat 计算后返回的时间格式
	 * @return 时间串
	 * @throws ParseException
	 */
	public static String getAddSubTime(String time,String format,int field ,int i, String resultFormat) throws ParseException {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
		Date date = simpleDateFormat.parse(time);
		Calendar calender = Calendar.getInstance();
		calender.setTime(date);
		calender.add(field, i);
		SimpleDateFormat resultSdfFormat = new SimpleDateFormat(resultFormat);
		return resultSdfFormat.format(calender.getTime());
	}
	/**
	 * 按要求计算时间后返回
	 * @param time 传入的时间
	 * @param format 传入的时间格式
	 * @param i 改变的量  长整型的数字 单位是毫秒 举例:70*24*60*60*1000L 正数表示增加70天后的日期
	 * @param resultFormat 计算后返回的时间格式
	 * @return 时间串
	 * @throws ParseException
	 */
	public static String getAddSubTime(String time,String format,long i, String resultFormat) throws ParseException {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
		Date date = simpleDateFormat.parse(time);
		long newTime = date.getTime() + i;
		Date newDate = new Date(newTime);
		SimpleDateFormat resultSdfFormat = new SimpleDateFormat(resultFormat);
		return resultSdfFormat.format(newDate);
	}
	/**
	 * 计算两个时间之差 
	 * @param time1 第一个时间 被减数
	 * @param time1Format 第一个时间格式
	 * @param time2 第二个时间  减数
	 * @param time2Format 第二个时间格式
	 * @param i 返回时间差的级别:1 返回毫秒  2返回秒 3返回分钟  4返回小时 5返回天 其他的也返回毫秒
	 * @return 相减的毫秒级数
	 * @throws ParseException
	 */
	public static long getMillSecondeByTime(String time1, String time1Format, String time2, String time2Format,int i) throws ParseException {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(time1Format);
		Date date1 = simpleDateFormat.parse(time1);
		SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(time2Format);
		Date date2 = simpleDateFormat2.parse(time2);
		long ms = date1.getTime() - date2.getTime();
		switch (i) {
			case 1:
				return ms;
			case 2:
				return ms/1000;
			case 3:
				return ms/(1000*60);
			case 4:
				return ms/(1000*60*60);
			case 5:
				return ms/(1000*60*60*24);
		}
		return ms;
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值