首先总结了一下日期转换基础,最常用的两个工具类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;

}

java 时间换算_【时间工具】整理下java时间换算专题相关推荐

  1. java一键安装_新工具一键安装Java环境!微软又双叒叕造福开发者

    原标题:新工具一键安装Java环境!微软又双叒叕造福开发者 微软又出一个新工具,正在以实际行动征服开发者的心. 在Windows平台上,只需要下载一个安装包,就能够安装Java开发环境了. 之前,因为 ...

  2. java 文件下载方法_【工具类】Java后台上传下载文件的几种方式

    /** * 将本地照片上传至腾讯云服务上 */ public void uploadImage(String localImagePath) throws Exception { // 1.将订单照片 ...

  3. java 复杂网络分析_基于复杂网络的Java程序分析工具设计与实现思路浅谈

    基于复杂网络的Java程序分析工具设计与 实现思路浅谈 摘要:近年来,随着科学技术的进步,计算机技术发展速度的加快,使得软件价值也逐步提高,不管是软件系统的应用领域,还是其规模均获得了相应的扩大,且软 ...

  4. 大华java面试经验_大华面试(Java 基础)

    7-17 大华一面(java 基础) 1. 讲一下 java 和其他语言的区别,说下 java 的平台无关性,如何做到一次编译,到处运行 关于java 的特性,可以从 java 的优点来说. java ...

  5. java获取系统时间的几种方法_获取当前时间的几种方法整理(Java)

    在java中有很多方法可以取到系统时间,记一下最简单的那种 //使用Calendar 获取当前日期和时间 Calendar calendar = Calendar.getInstance(); // ...

  6. bat中文乱码_详解Windows下获取时间bat脚本总结,值得收藏

    概述 最近都在写ftp windows环境的一些bat脚本,为了方便显示,想要记录一下每次操作的时间,所以在这里总结一下windows环境bat脚本获取时间的常用命令. windows环境获取时间相关 ...

  7. java 时间格式化_还在用SimpleDateFormat格式化时间?小心经理锤你

    还在用SimpleDateFormat格式化时间?小心经理锤你 场景 本来开开心心的周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误 java.lang.NumberF ...

  8. java手表怎么设置时间设置时间设置_佳明手表怎么设置时间?

    随着近期人们对健身的热衷,许多腕表厂商纷纷开发起了运动腕表,其中就有一个名为佳明的手表品牌开始为人们所了解,那么你知道佳明手表怎么设置时间吗?下面就由小编来为大家科普一下吧! 佳明手表怎么设置时间?想 ...

  9. 学习笔记:Java 并发编程⑥_并发工具_JUC

    若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...

  10. java超线程_超线程多核心下Java多线程编程技术分析

    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述超线程多核心下Java多线程编程技术分析,更多Java专业知识,广州疯狂 ...

最新文章

  1. python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
  2. linux玩我的世界java版_Linux下安装我的世界(Minecraft)
  3. POJ - 1459 Power Network(网络流-最大流)
  4. [Java基础]复制文件的异常处理try...catch...finally的做法
  5. 麒麟810处理器_麒麟810性能实测:对比骁龙845骁龙730,谁更强?
  6. java项目_好程序员Java分享从入门到服务端项目开发的过程
  7. android 前后同时预览_用上这些官方动态壁纸,让你的 Android 主屏简洁又优雅
  8. 基于visual Studio2013解决C语言竞赛题之0203格式化输出
  9. 6月29 Electron的第一课
  10. 清楚理解const_cast类型转换
  11. vscode下载C/C++手动下载 VSIX安装
  12. 如何把两块硬盘数据迁移到另一块硬盘
  13. OpenCV快速入门五:色彩空间转换
  14. 【报告分享】 2020年中国汽车用户消费洞察白皮-懂车帝巨量算数(附下载)
  15. springboot毕设项目游泳馆管理系统2069l(java+VUE+Mybatis+Maven+Mysql)
  16. 使用萤石工作室采集视频流程以及萤石摄像头(C6、C8PF)、Sj6 Legend详解
  17. python简答题及答案查询公众号和软件_Python 抓取微信公众号账号信息的方法
  18. 8086CPU指令系统 串操作指令和处理机控制指令
  19. Web测试要点(功能、性能、可用性、兼容、安全)
  20. 极限理论总结03:中心极限定理(CLT)与Edgeworth展开

热门文章

  1. 输入网址后发生了什么
  2. 23种常用设计模式的UML类图
  3. 媒体查询Media Queries详解
  4. Bzoj2732 [HNOI2012]射箭
  5. ASP.NET站点构建之减少不必要的请求
  6. Android 开发 带图像的Toast提示
  7. Log4net之开始使用
  8. [SD2.0大会]在大型企业中领导敏捷--开发团队领导所必需的技能
  9. windows2003 ftp 无法下载 解决
  10. No Thumbnails for Custom Picture Library Definition