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;
}
java 时间换算_【时间工具】整理下java时间换算专题相关推荐
- java一键安装_新工具一键安装Java环境!微软又双叒叕造福开发者
原标题:新工具一键安装Java环境!微软又双叒叕造福开发者 微软又出一个新工具,正在以实际行动征服开发者的心. 在Windows平台上,只需要下载一个安装包,就能够安装Java开发环境了. 之前,因为 ...
- java 文件下载方法_【工具类】Java后台上传下载文件的几种方式
/** * 将本地照片上传至腾讯云服务上 */ public void uploadImage(String localImagePath) throws Exception { // 1.将订单照片 ...
- java 复杂网络分析_基于复杂网络的Java程序分析工具设计与实现思路浅谈
基于复杂网络的Java程序分析工具设计与 实现思路浅谈 摘要:近年来,随着科学技术的进步,计算机技术发展速度的加快,使得软件价值也逐步提高,不管是软件系统的应用领域,还是其规模均获得了相应的扩大,且软 ...
- 大华java面试经验_大华面试(Java 基础)
7-17 大华一面(java 基础) 1. 讲一下 java 和其他语言的区别,说下 java 的平台无关性,如何做到一次编译,到处运行 关于java 的特性,可以从 java 的优点来说. java ...
- java获取系统时间的几种方法_获取当前时间的几种方法整理(Java)
在java中有很多方法可以取到系统时间,记一下最简单的那种 //使用Calendar 获取当前日期和时间 Calendar calendar = Calendar.getInstance(); // ...
- bat中文乱码_详解Windows下获取时间bat脚本总结,值得收藏
概述 最近都在写ftp windows环境的一些bat脚本,为了方便显示,想要记录一下每次操作的时间,所以在这里总结一下windows环境bat脚本获取时间的常用命令. windows环境获取时间相关 ...
- java 时间格式化_还在用SimpleDateFormat格式化时间?小心经理锤你
还在用SimpleDateFormat格式化时间?小心经理锤你 场景 本来开开心心的周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误 java.lang.NumberF ...
- java手表怎么设置时间设置时间设置_佳明手表怎么设置时间?
随着近期人们对健身的热衷,许多腕表厂商纷纷开发起了运动腕表,其中就有一个名为佳明的手表品牌开始为人们所了解,那么你知道佳明手表怎么设置时间吗?下面就由小编来为大家科普一下吧! 佳明手表怎么设置时间?想 ...
- 学习笔记:Java 并发编程⑥_并发工具_JUC
若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 配套资料: ...
- java超线程_超线程多核心下Java多线程编程技术分析
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述超线程多核心下Java多线程编程技术分析,更多Java专业知识,广州疯狂 ...
最新文章
- python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
- linux玩我的世界java版_Linux下安装我的世界(Minecraft)
- POJ - 1459 Power Network(网络流-最大流)
- [Java基础]复制文件的异常处理try...catch...finally的做法
- 麒麟810处理器_麒麟810性能实测:对比骁龙845骁龙730,谁更强?
- java项目_好程序员Java分享从入门到服务端项目开发的过程
- android 前后同时预览_用上这些官方动态壁纸,让你的 Android 主屏简洁又优雅
- 基于visual Studio2013解决C语言竞赛题之0203格式化输出
- 6月29 Electron的第一课
- 清楚理解const_cast类型转换
- vscode下载C/C++手动下载 VSIX安装
- 如何把两块硬盘数据迁移到另一块硬盘
- OpenCV快速入门五:色彩空间转换
- 【报告分享】 2020年中国汽车用户消费洞察白皮-懂车帝巨量算数(附下载)
- springboot毕设项目游泳馆管理系统2069l(java+VUE+Mybatis+Maven+Mysql)
- 使用萤石工作室采集视频流程以及萤石摄像头(C6、C8PF)、Sj6 Legend详解
- python简答题及答案查询公众号和软件_Python 抓取微信公众号账号信息的方法
- 8086CPU指令系统 串操作指令和处理机控制指令
- Web测试要点(功能、性能、可用性、兼容、安全)
- 极限理论总结03:中心极限定理(CLT)与Edgeworth展开