ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java8时间工具类

2019-03-07 11:53:43  阅读:213  来源: 互联网

标签:return param date 时间 LocalDateTime Date static 工具 java8


package com.voole.platform.util;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;

import org.junit.Test;


public class DateUtils {
	
	
	private final static String DATE_TIME_FORMAT = "yyyymmddhhmmss";
	
	private final static String DATE_TIME_FORMAT_1 = "yyyy-MM-dd HH:mm:ss";
	/**
	 * 计算起始日期间的相隔天数
	 * @param starttime
	 * @param endtime
	 * @return
	 */
	public static long getTimeDayDiff(Date starttime, Date endtime){
		long nd = 1000 * 24 * 60 * 60;
		long diff = endtime.getTime() - starttime.getTime();
		long day = diff / nd;
		return day;
	}
	
	/**
	 * 获取给定日期增加给定天数后的日期
	 * @param date
	 * @param hour
	 * @return
	 */
	public static Date addHour(Date date, int hour){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		long millis = calendar.getTimeInMillis() + ((long) hour) * 3600 * 1000;
		calendar.setTimeInMillis(millis);
		return calendar.getTime();
	}
	
	/**
	 * 
	 * <p>Title: getDateNow</p>
	 * <p>Description: 获取当前时间   格式yyyymmddhhmmss</p>
	 * @return
	 * @author 冯浩  2019年2月25日 下午5:36:56
	 */
	public static String getDateNow() {
		LocalDateTime date = LocalDateTime.now();
		DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT);
		return date.format(ofPattern);
	}
	
	/**
	 * 
	 * <p>Title: format</p>
	 * <p>Description: 时间格式化</p>
	 * @param date
	 * @return
	 * @author 冯浩  2019年3月7日 上午11:10:05
	 */
	public static String format(Date date) {
		DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern(DATE_TIME_FORMAT_1);
		LocalDateTime tranfer = tranfer(date);
		return tranfer.format(ofPattern);
	}
	
	/**
	 * 
	 * <p>Title: tranfer</p>
	 * <p>Description: 时间类型转换</p>
	 * @param date
	 * @return
	 * @author 冯浩  2019年3月7日 上午11:10:33
	 */
	public static LocalDateTime tranfer(Date date) {
		Instant instant = date.toInstant();
		ZoneId systemDefault = ZoneId.systemDefault();
		return LocalDateTime.ofInstant(instant, systemDefault);
	}
	
	/**
	 * 
	 * <p>Title: betweenTimes</p>
	 * <p>Description: 求两个时间之间的差值(秒)</p>
	 * @param start
	 * @param end
	 * @return
	 * @author 冯浩  2019年3月7日 上午11:27:32
	 */
	public static long betweenTimes(Date start,Date end) {
		LocalDateTime starttime = tranfer(start);
		LocalDateTime endtime = tranfer(end);
		return ChronoUnit.SECONDS.between(starttime, endtime);
	}
	
	/**
	 * 
	 * <p>Title: isBefore</p>
	 * <p>Description: 两个时间比较</p>
	 * @param start
	 * @param end
	 * @return
	 * @author 冯浩  2019年3月7日 上午11:33:20
	 */
	public static boolean isBefore(Date start,Date end) {
		LocalDateTime starttime = tranfer(start);
		LocalDateTime endtime = tranfer(end);
		return starttime.isBefore(endtime);
	}
	
	@Test
	public void test() {
		Date addHour = DateUtils.addHour(new Date(), 40);
//		long betweenTimes = DateUtils.betweenTimes(new Date(), addHour);
		boolean before = DateUtils.isBefore(new Date(), addHour);
		System.out.println(before);
	}
	
	
}

  参考 https://github.com/biezhi/java-bible/blob/master/java8/java8-guide.md



标签:return,param,date,时间,LocalDateTime,Date,static,工具,java8
来源: https://www.cnblogs.com/nihaofenghao/p/10488577.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有