您的位置:首页 > 编程语言 > Java开发

jdk1.8日期转换(Date、LocalDate、LocalDateTime、Timestamp之间转换)

2019-08-01 16:46 351 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_41205148/article/details/98075031

仅记录一下

// Copyright 2016-2101 Pica.
package com.pica.cloud.health.sms.common.utils;

import java.io.Serializable;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/**
* @ClassName SmsDateUtil
* @Description 时间处理工具类
* @Author Chongwen.jiang
* @Date 2019/6/11 15:53
* @ModifyDate 2019/6/11 15:53
* @Version 1.0
*/
public class SmsDateUtil implements Serializable {
public static final String DATE_YYYYMM_PATTERN = "yyyyMM";
public static final String DATE_YEAR_MONTH_PATTERN = "yyyy-MM";
public static final String DATE_YEAR_PATTERN = "yyyy";
public static final String DATE_PATTERN = "yyyy-MM-dd";
public static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_SHORTTIME_PATTERN = "yyyy-MM-dd HH:mm";
public static final String DATE_PATTERN_2 = "yyyy/MM/dd";
public static final String DATE_POINT_PATTERN = "yyyy.MM.dd";
public static final String DATE_POINT2_PATTERN = "yyyy.MM";
public static final String DATE_YYYYMMDDHHmm = "yyyy年MM月dd日 HH:mm";
public static final String DATE_HHmmss = "HH:mm:ss";
public static final String DATE_mdHHmmss = "MM-dd HH:mm:ss";

/**
* @Description Date对象转换为LocalDateTime对象
* @Author Chongwen.jiang
* @Date 2019/6/11 16:02
* @ModifyDate 2019/6/11 16:02
* @Params [date, pattern]
* @Return java.time.LocalDateTime
*/
public static LocalDateTime date2LocalDateTime(Date date){
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}

/**
* @Description LocalDateTime对象转换为Date对象
* @Author Chongwen.jiang
* @Date 2019/6/11 16:03
* @ModifyDate 2019/6/11 16:03
* @Params [localDateTime]
* @Return java.util.Date
*/
public static Date localDateTime2Date(LocalDateTime localDateTime){
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zdt = loca
3ff7
lDateTime.atZone(zoneId);
return Date.from(zdt.toInstant());
}

/**
* @Description LocalDateTime对象转换为指定格式字符串
* @Author Chongwen.jiang
* @Date 2019/6/11 16:03
* @ModifyDate 2019/6/11 16:03
* @Params [localDateTime, pattern]
* @Return java.lang.String
*/
public static String formatTime(LocalDateTime localDateTime, String pattern){
if(null == localDateTime){
localDateTime = LocalDateTime.now();
}
return DateTimeFormatter.ofPattern(pattern).format(localDateTime);
}

/**
* @Description timestamp转换为指定格式字符串
* @Author Chongwen.jiang
* @Date 2019/6/13 19:09
* @ModifyDate 2019/6/13 19:09
* @Params [date, pattern]
* @Return java.lang.String
*/
public static String format(Long date, String pattern){
return formatTime(timeStamp2LocalDateTime(date), pattern);
}

/**
* @Description Date对象转换为指定格式字符串
* @Author Chongwen.jiang
* @Date 2019/6/13 18:38
* @ModifyDate 2019/6/13 18:38
* @Params [date, pattern]
* @Return java.lang.String
*/
public static String format(Date date, String pattern){
return new SimpleDateFormat(pattern).format(date);
}

/**
* @Description Date对象转换为LocalDate对象
* @Author Chongwen.jiang
* @Date 2019/6/11 16:17
* @ModifyDate 2019/6/11 16:17
* @Params [date]
* @Return java.time.LocalDate
*/
public static LocalDate date2LocalDate(Date date){
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();
}

/**
* @Description Date转换为timestamp
* @Author Chongwen.jiang
* @Date 2019/6/13 13:16
* @ModifyDate 2019/6/13 13:16
* @Params [date]
* @Return long
*/
public static long date2Timestamp(Date date){
if(null == date){
date = new Date();
}
return Timestamp.valueOf(date2LocalDateTime(date)).getTime();
}

/**
* @Description LocalDateTime转换为timestamp
* @Author Chongwen.jiang
* @Date 2019/6/13 13:16
* @ModifyDate 2019/6/13 13:16
* @Params [localDateTime]
* @Return long
*/
public static long localDate2Timestamp(LocalDateTime localDateTime){
if(null == localDateTime){
localDateTime = LocalDateTime.now();
}
return Timestamp.valueOf(localDateTime).getTime();
}

/**
* @Description 时间戳转换为LocalDateTime
* @Author Chongwen.jiang
* @Date 2019/6/13 15:03
* @ModifyDate 2019/6/13 15:03
* @Params [timestamp]
* @Return java.time.LocalDateTime
*/
public static LocalDateTime timeStamp2LocalDateTime(long timestamp){
return LocalDateTime.ofEpochSecond(timestamp/1000,0,ZoneOffset.ofHours(8));
}

/**
* @Description 时间戳转换为LocalDate
* @Author Chongwen.jiang
* @Date 2019/6/13 15:03
* @ModifyDate 2019/6/13 15:03
* @Params [timestamp]
* @Return java.time.LocalDateTime
*/
public static LocalDate timeStamp2LocalDate(long timestamp){
return date2LocalDate(localDateTime2Date(LocalDateTime.ofEpochSecond(timestamp/1000,0,ZoneOffset.ofHours(8))));
}

/**
* @Description 获取两个时间相差小时数
* @Author Chongwen.jiang
* @Date 2019/6/15 10:23
* @ModifyDate 2019/6/15 10:23
* @Params [fromDate, toDate]
* @Return int
*/
public static int compareDate(String fromDate, String toDate) {
int  hours = 0;
try {
SimpleDateFormat simpleFormat = new SimpleDateFormat(DATE_SHORTTIME_PATTERN);
long to = simpleFormat.parse(toDate).getTime();
long from = simpleFormat.parse(fromDate).getTime();
hours = (int) ((to - from)/(1000 * 60 * 60));
System.out.println("QQ"+hours);
} catch (Exception e) {
e.printStackTrace();
}
return hours;
}

/**
* @Description 获取两个时间相差天数
* @Author Chongwen.jiang
* @Date 2019/6/15 10:25
* @ModifyDate 2019/6/15 10:25
* @Params [startDate, endDate]
* @Return long
*/
public static long diffDays
4000
(LocalDate startDate, LocalDate endDate) {
return endDate.toEpochDay() - startDate.toEpochDay();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: