import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
/**
* @author miao
*/
public class DateUtils {
/**
* LocalDateTime convert Date
*
* @param localDateTime localDateTime
* @return Date
*/
public static Date toDate(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
/**
* Date convert LocalDateTime
*
* @param dateTime dateTime
* @return LocalDateTime
*/
public static LocalDateTime toLocalDateTime(Date dateTime) {
return dateTime.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();
}
/**
* 计算两个日期时间的相差天数与小时
*
* @param startTime 开始时间
* @param endTime 结束时间
* @return String
*/
public static String calcLocalDateTime(LocalDateTime startTime, LocalDateTime endTime) {
Duration between = Duration.between(startTime, endTime);
StringBuilder timeBuilder = new StringBuilder();
long dayResult = between.toDays();
if (dayResult > 0) {
long betweenHours = between.toHours();
long hourResult = dayResult * 24 - betweenHours;
if (hourResult > 0) {
timeBuilder.append(dayResult).append("天")
.append(" ").append(hourResult).append("小时");
} else if (hourResult == 0) {
timeBuilder.append(dayResult).append("天");
} else {
timeBuilder.append(dayResult).append("天")
.append(" ").append(-hourResult).append("小时");
}
} else {
timeBuilder.append(between.toHours()).append("小时");
}
return timeBuilder.toString();
}
public static void main(String[] args) {
LocalDateTime startTime = LocalDateTime.of(2020, 9, 10, 18, 40);
LocalDateTime endTime = LocalDateTime.of(2020, 9, 12, 16, 45);
System.out.println(calcLocalDateTime(startTime, endTime));
}
}
计算两个日期之间相差天数与小时
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...