【时间工具】整理下java时间换算专题

转载地址:https://blog.csdn.net/the_fool_/article/details/80077447

首先总结了一下日期转换基础,最常用的两个工具类Date与calender,转换方法如下:  
package TestArr;

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

public class TestTime {

	public static void main(String[] args) {  
        //date 与calandar  
        try{  
            //首先是Date的格式化与反格式化。yyyy-MM-dd HH:mm:ss 分别对应 年-月-日 时:分:秒  
            //"HH:mm:ss"是24小时制的,"hh:mm:ss"是12小时制。  
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
            //日期的格式化转换  
            Date now = new Date();  
            String format = sdf.format(now);  
            System.out.println(format);//结果:2018-05-02 16:51:13  
            //  
            String time = "2018-05-02 16:51:13";  
            Date parse = sdf.parse(time);  
            System.out.println(format);//  
  
            //获取时间戳  
            Date date = new Date();  
            long time1 = date.getTime();//获取时间戳方法  
  
  
            //给日历设置date日期:  
            Date d= new Date();  
            Calendar calendar = Calendar.getInstance();  
            calendar.setTime(d);  
  
            //给日历设置自定义日期:  
            Calendar calendar2 = Calendar.getInstance();  
            calendar2.set(Calendar.YEAR,2018);  
            calendar2.set(Calendar.MONTH,11);//月份是从0开始的,所以11代表十二月  
            calendar2.set(Calendar.DAY_OF_MONTH,20);//  
  
            //日历转date  
            Date calendar2Date = calendar2.getTime();  
            String calendar2String = sdf.format(calendar2Date);  
            System.out.println(">>>>>>>>>>"+calendar2String);//结果>>>>>>>>>>2018-12-20 17:20:12  
  
            //间隔日期:  
  
            Date date1 = new Date();  
            Calendar cal = Calendar.getInstance();  
            cal.setTime(date1);  
            cal.add(Calendar.DATE,1);  
            Date date2 = cal.getTime();  
  
            long leftTime =  date2.getTime()-date1.getTime();  
            System.out.println("时间戳间隔"+leftTime);  
            //将时间戳间隔转换成时分秒,正在写。。  
  
            Long hh=leftTime/(1000*60*60);  
            Long mm=leftTime%(1000*60*60);  
            String betueenTime=hh+"小时"+mm+"分";  
  
            //倒计时:  
              
        }catch (Exception e){  
  
        }  
    }  
}

package com.zzt.spider;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
 * 时间工具总结
 * @author ZX
 * @date 2018年4月20日
 *
 */
public class TestTime {
	public static void main(String[] args) {
		//date 与calandar
		try{
			//首先是Date的格式化与反格式化。yyyy-MM-dd HH:mm:ss 分别对应 年-月-日 时:分:秒
			//"HH:mm:ss"是24小时制的,"hh:mm:ss"是12小时制。
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			//日期的格式化转换
			Date now = new Date();
			String format = sdf.format(now);
			System.out.println(format);//结果:2018-05-02 16:51:13
			//
			String time = "2018-05-02 16:51:13";
			Date parse = sdf.parse(time);
			System.out.println(format);//

			//获取时间戳
			Date date = new Date();
			long time1 = date.getTime();//获取时间戳方法


			//给日历设置date日期:
			Date d= new Date();
			Calendar calendar = Calendar.getInstance();
			calendar.setTime(d);

			//给日历设置自定义日期:
			Calendar calendar2 = Calendar.getInstance();
			calendar2.set(Calendar.YEAR,2018);
			calendar2.set(Calendar.MONTH,11);//月份是从0开始的,所以11代表十二月
			calendar2.set(Calendar.DAY_OF_MONTH,20);//

			//日历转date
			Date calendar2Date = calendar2.getTime();
			String calendar2String = sdf.format(calendar2Date);
			System.out.println(">>>>>>>>>>"+calendar2String);//结果>>>>>>>>>>2018-12-20 17:20:12


			//间隔日期:

			Date date1 = new Date();
			Calendar cal = Calendar.getInstance();
			cal.setTime(date1);
			cal.add(Calendar.DATE,1);
			Date date2 = cal.getTime();

			long leftTime =  date2.getTime()-date1.getTime();
			System.out.println("时间戳间隔"+leftTime);
			//将时间戳间隔转换成时分秒,正在写。。

			Long hh=leftTime/(1000*60*60);
			Long mm=leftTime%(1000*60*60);
			String betueenTime=hh+"小时"+mm+"分";


			//倒计时:
			
		}catch (Exception e){

		}
	}
}

工具类:计算间隔时分秒:

package TestArr;

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

public class TestTime {

		public static void main(String[] args) throws ParseException {  
	        //测试  
	        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
	        String timeStr1="2018-04-01 12:30:10";  
	        String timeStr2="2018-04-02 13:31:20";  
	        Date date1 = sdf.parse(timeStr1);  
	        Date date2 = sdf.parse(timeStr2);  
	        String dateBetween = dateBetween(date1, date2);  
	        System.out.println(dateBetween);  
	          
	    }
		
	    /**  
	     * @param startDate 开始date  
	     * @param endDate   结束date  
	     * @return  
	     */  
	    public static String dateBetween(Date startDate, Date endDate) {  
	        java.util.Calendar calStart = java.util.Calendar.getInstance();  
	        java.util.Calendar calEnd = java.util.Calendar.getInstance();  
	  
	        calStart.setTime(startDate);  
	        calEnd.setTime(endDate);  
	  
	        long diffMill = calEnd.getTime().getTime() - calStart.getTime().getTime();  
	        System.out.println("间隔的毫秒数:"+diffMill);  
	          
	        long rtn = 0;  
	              
	        return formatTime(diffMill);  
	    }  
	    /*   
	     * 毫秒转化时分秒毫秒   
	     */    
	    public static String formatTime(Long ms) {    
	        Integer ss = 1000;    
	        Integer mi = ss * 60;    
	        Integer hh = mi * 60;    
	        Integer dd = hh * 24;    
	        
	        Long day = ms / dd;    
	        Long hour = (ms - day * dd) / hh;    
	        Long minute = (ms - day * dd - hour * hh) / mi;    
	        Long second = (ms - day * dd - hour * hh - minute * mi) / ss;    
	        Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;    
	            
	        StringBuffer sb = new StringBuffer();    
	        if(day > 0) {    
	            sb.append(day+"天");    
	        }    
	        if(hour > 0) {    
	            sb.append(hour+"小时");    
	        }    
	        if(minute > 0) {    
	            sb.append(minute+"分");    
	        }    
	        if(second > 0) {    
	            sb.append(second+"秒");    
	        }    
	        if(milliSecond > 0) {    
	            sb.append(milliSecond+"毫秒");    
	        }    
	        return sb.toString();    
	    }    
	      
	 
	    public static Long dateDiff(Date sDate, Date eDate, int diffType) {  
	        java.util.Calendar calst = java.util.Calendar.getInstance();  
	        java.util.Calendar caled = java.util.Calendar.getInstance();  
	  
	        calst.setTime(sDate);  
	        caled.setTime(eDate);  
	  
	        long diffMill = caled.getTime().getTime() - calst.getTime().getTime();  
	        System.out.println("diffMill"+diffMill);  
	        long rtn = 0;  
	        switch (diffType) {  
	            case Calendar.MILLISECOND:  
	                rtn = diffMill;  
	                break;  
	            case Calendar.SECOND:  
	                rtn = diffMill / 1000;  
	                break;  
	            case Calendar.MINUTE:  
	                rtn = diffMill / 1000 / 60;  
	                break;  
	            case Calendar.HOUR:  
	                rtn = diffMill / 1000 / 3600;  
	                break;  
	            case Calendar.DATE:  
	                rtn = diffMill / 1000 / 60 / 60 / 24;  
	                break;  
	            case Calendar.MONTH:  
	                rtn = diffMill / 1000 / 60 / 60 / 24 / 12;  
	                break;  
	            case Calendar.YEAR:  
	                rtn = diffMill / 1000 / 60 / 60 / 24 / 365;  
	                break;  
	        }  
	        return rtn;  
	    }    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值