本文主要是介绍【时间工具】整理下java时间换算专题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先总结了一下日期转换基础,最常用的两个工具类Date与calender,转换方法如下:
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 与calandartry{//首先是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);////日历转dateDate 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.ParseException;
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) 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;}
}
获取某月第一天与最后一天:
/**
* 获得该月第一天
* @param year
* @param month
* @return
*/
public static String getFirstDayOfMonth(int year,int month){ Calendar cal = Calendar.getInstance(); //设置年份 cal.set(Calendar.YEAR,year); //设置月份 cal.set(Calendar.MONTH, month-1); //获取某月最小天数 int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH); //设置日历中月份的最小天数 cal.set(Calendar.DAY_OF_MONTH, firstDay); //格式化日期 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String firstDayOfMonth = sdf.format(cal.getTime()); return firstDayOfMonth; }
/*** 获取某年某月的最后一天* @param year* @param month* @return*/public static String getLatDayOfMonth(int year ,int month) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar cal = Calendar.getInstance();//设置年份/* cal.set(Calendar.YEAR,year);//设置月份cal.set(Calendar.MONTH, month-1);*///获取某月最大天数// int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);//设置日历中月份的最大天数// cal.set(Calendar.DAY_OF_MONTH, lastDay);//格式化日期cal.set(year, month-1, 1);cal.roll(Calendar.DATE, -1);String lastDayOfMonth = sdf.format(cal.getTime());return lastDayOfMonth;}
这篇关于【时间工具】整理下java时间换算专题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!