首先总结了一下日期转换基础,最常用的两个工具类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. Python: 文件操作与数据读取

    文件及目录操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块,主要用到的几个函数是, import os 返回指定目录下的所有文件和目录名: os.listdir() 重命名: ...

  2. uwp - 解决使用EntityFramework时报错“unable to load dll 'sqlite3':the specified module could not be found”

    在使用uwp的ef过程中碰到一万个问题快折腾死我了,好在最后终于解决掉所有问题,但愿如此,因为在这之前先后发生不同的报错,不知道后面还会碰到新的问题不. 其中一个问题是这样的,生成能正常生成,但是启动 ...

  3. [Unity3D]Unity3D圣骑士模仿游戏开发传仙灵达到当局岛

    大家好,我是秦培.欢迎关注我的博客.我的博客地址blog.csdn.net/qinyuanpei. 在前面的文章中.我们分别实现了一个自己定义的角色控制器<[Unity3D]Unity3D游戏开 ...

  4. @RequestBody标记的形参,与APP接口不能直接用

    用ajax请求传JSON串,在服务端形参用@RequestBody标记可以直接转为对应的对象: 在APP调用该接口时,服务端用@RequestBody标记无法转为对应对象,将形参改为String类型, ...

  5. NSURLSession 网络库 - 原生系统送给我们的礼物

    大家在进行iOS开发的时候一定会用到网络操作.但由于早期原生的 NSURLConnection 操作起来有很多不便,使得大家更愿意使用第三方库的解决方案,比如鼎鼎大名的 AFNetworking.正是 ...

  6. ABP框架——单表实体流程

    实体实体配置文件菜单本地化语言:xml文件权限配置领域服务应用层CRUDDTOSPA路由:app.js视图生成:.html,.js

  7. MVC基架生成的Detele视图

    @model MyMusicStore.Models.Album @{     ViewBag.Title = "Delete"; } <h2>Delete</h ...

  8. 宽字符std::wstring的长度和大小问题?sizeof(std::wstring)是固定的32,说明std::wstring是一个普通的C++类,而且和Delphi不一样,没有负方向,因为那个需要编译器的支持

    std::wstring ws=L"kkkk";    int il=ws.length();    int ia=sizeof(ws);    int ib=sizeof(&qu ...

  9. WPF 列表样式

    <Window x:Class="CollectionBinding.MainWindow"        xmlns="http://schemas.micros ...

  10. MYSQL 定时自动执行EVENT

    MySQL从5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了 ...