首先总结了一下日期转换基础,最常用的两个工具类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时间换算专题的更多相关文章

  1. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  2. Java 8——日期时间工具库(java.time)

    一.前言 在介绍Java SE 8中新的日期时间库前,先了解下Java 8之前的日期时间工具的诟病. 在Java SE 8前,日期时间工具库在java.util包中,包括: java.util.Dat ...

  3. hutool的时间工具类

    hutool的时间工具类 糊涂的时间工具类有很多使用方法,用到了这几个 日期向后偏移     String now = DateUtil.now();        Date date4= DateU ...

  4. 花了近十年的时间,整理出史上最全面Java面试题

    1.String 是最基本的数据类型吗? 不是.Java中的基本数据类型只有8个:byte.short.int.long.float.double.char.boolean:除了基本类型(primit ...

  5. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  6. JAVA时间工具类,在维护的项目里的

    package com.inspur.jobSchedule.util; import org.apache.commons.lang3.time.DateUtils; import org.apac ...

  7. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  8. 一个好的Java时间工具类DateTime

    此类的灵感来源于C# 虽然网上有什么date4j,但是jar太纠结了,先给出源码,可以继承到自己的util包中,作为一个资深程序员,我相信都有不少好的util工具类,我也希望经过此次分享,能带动技术大 ...

  9. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

随机推荐

  1. UVA - 10312 Expression Bracketing

    Description Problem A Expression Bracketing Input: standard input Output: standard output Time Limit ...

  2. Windows下Apache+MySQL+PHP快速配置的几种方法

    Apache MySQL PHP Windows WAMP 1.易思EasySiteServer服务器集成环境 v1.0  (推荐) 尔创互联为推广其ESPCMS而开发的一个小东东,很好用.零配置,完 ...

  3. Java Swing界面编程(29)---JCheckBox事件处理

    JCheckBox和JRadioButton的事件处理监听接口是一样的,都是使用ItemListener接口. package com.beyole.util; import java.awt.Con ...

  4. WPF透明窗体制作

    原文:WPF透明窗体制作 窗体的样式: <Grid Width="{Binding Width, ElementName=w}" Height="{Binding ...

  5. Codeforces Beta Round #7--D. Palindrome Degree(Manacer)

    题目:http://blog.csdn.net/winddreams/article/details/44218961 求出每一个点为中心的最长字符串,推断该串是不是从开头的回文串. #include ...

  6. matlab 三维图像的绘制

    1. 基本绘图函数 plot3() scatter3() 2. 修饰与点缀 但仅使用默认的配置,调用这些绘图函数,不会很丑,但也漂亮不到哪里去. view(az, el),调整视野和视角:

  7. 常见的选择&lt;数据源协议,委托协议&gt;(IOS发展)

    -常见的选择必须满足这两个协议,约定实施.一个为数据源协议 -托付协议负责控制控件UI.事件响应, 实现可选 -数据源协议负责控件与应用数据模型的桥梁,一般必须实现 @interface ViewCo ...

  8. windows下编译qt的mysql驱动

    windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\M ...

  9. BIOS 选项设置的含义

    SATA Mode Section: ADHI: Advanced Host Controller Interface - this is a hardware mechanism that allo ...

  10. Ubuntu 15.04 clang++ 3.6 编译boost 1.59/1.55

    Ubuntu 15.04已经可以直接通过apt-get insall 安装clang 3.6, 并且预装的gcc版本是4.9.2.这些安装过程在这里介绍. 首先下载boost源码 wget -O bo ...