java 时间换算_【时间工具】整理下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 与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.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;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值