java 接口开发时间_Java编程时间日期API实例解析

本文实例主要是关于Java8中的新特性,时间日期api的相关实例,具体如下:

package com.effective.common.base.date;

import java.time.Instant;

import java.time.LocalDate;

import java.time.LocalDateTime;

import java.time.LocalTime;

import java.time.Period;

import java.time.ZoneId;

import java.time.format.DateTimeFormatter;

import java.time.temporal.ChronoUnit;

import java.util.Date;

/**

* 日期工具类

* @author yanweiqi

* @since 2016-5-6

*

*/

public class LocalDateUtils {

private static ZoneId zone = ZoneId.systemDefault();

/**

* 字符串转Date

* @param date

* @return

* @throws Exception

*/

public static Date convertToDate(String date) throws Exception{

LocalDate localDate = null;

if(null == date){

throw new NullPointerException("date isn't null");

} else {

localDate = LocalDate.parse(date);

return convertToDate(localDate);

}

}

/**

* 字符串转LocalDateTime

* @param date

* @return localDateTime

*/

public static LocalDateTime convertToLocalDateTime(String date){

LocalDateTime localDateTime = null;

if(null == date){

throw new NullPointerException("date isn't null");

} else {

localDateTime = LocalDateTime.parse(date);

return localDateTime;

}

}

/**

* LocalDate转Date

* @param localDate

* @return Date

*/

public static Date convertToDate(LocalDate localDate){

Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();

return Date.from(instant);

}

/**

* LocalDate转Date

* @param localDateTime

* @return Date

*/

public static Date convertToDate(LocalDateTime localDateTime){

Instant instant = localDateTime.atZone(zone).toInstant();

return Date.from(instant);

}

/**

* Date转LocalDate

* @param date

* @return localDate

*/

public static LocalDate convertToLocalDate(Date date){

Instant instant = date.toInstant();

return convertToLocalDateTime(instant).toLocalDate();

}

/**

* Date转LocalTime

* @param date

* @return localDate

*/

public static LocalTime convertToLocalTime(Date date){

Instant instant = date.toInstant();

return convertToLocalDateTime(instant).toLocalTime();

}

/**

* Date转LocalDatetime

* @param date

* @return localDate

*/

public static LocalDateTime convertToLocalDateTime(Date date){

Instant instant = date.toInstant();

return convertToLocalDateTime(instant);

}

/**

* Instant转LocalDateTime

* @param instant

* @return

*/

public static LocalDateTime convertToLocalDateTime(Instant instant){

return LocalDateTime.ofInstant(instant, zone);

}

/**

* LocalDateTime转Instant

* @param localDateTime

* @return

*/

public static Instant convertToInstant(LocalDateTime localDateTime){

return localDateTime.atZone(zone).toInstant();

}

/**

* LocalDate转Instant

* @param localDate

* @return

*/

public static Instant convertToInstant(LocalDate localDate){

return localDate.atStartOfDay(zone).toInstant();

}

/**

* LocalDate转LocalDateTime

* @param localDate

* @return LocalDateTime

*/

public static LocalDateTime convertToLocalDateTime(LocalDate localDate){

return localDate.atStartOfDay();

}

/**

* 日周期格式化

* @param localDateTime

* @param formatStyle

* @return

*/

public static String formatter(LocalDateTime localDateTime, String formatStyle){

return DateTimeFormatter.ofPattern(formatStyle).format(localDateTime);

}

/**

* 设置年

* @param sourceDate

* @param year

* @return LocalDateTime

*/

public static LocalDateTime setYear(LocalDateTime sourceDate, Integer year){

return sourceDate.withYear(year);

}

/**

* 设置月

* @param sourceDate

* @param month

* @return LocalDateTime

*/

public static LocalDateTime setMonth(LocalDateTime sourceDate, Integer month){

return sourceDate.withMonth(month);

}

/**

* 设置天

* @param sourceDate

* @param month

* @return LocalDateTime

*/

public static LocalDateTime setDayOfMonth(LocalDateTime sourceDate, Integer dayOfMonth){

return sourceDate.withDayOfMonth(dayOfMonth);

}

/**

* 设置小时

* @param sourceDate

* @param hour

* @return

*/

public static LocalDateTime setHour(LocalDateTime sourceDate,Integer hour){

return sourceDate.withHour(hour);

}

/**

* 设置分钟

* @param sourceDate

* @param minute

* @return

*/

public static LocalDateTime setMinute(LocalDateTime sourceDate,Integer minute){

return sourceDate.withMinute(minute);

}

/**

* 设置秒

* @param sourceDate

* @param second

* @return

*/

public static LocalDateTime setSecond(LocalDateTime sourceDate,Integer second){

return sourceDate.withSecond(second);

}

/**

* 修改年月日

* @param sourceDate

* @param year

* @param month

* @param dayOfMonth

* @return

*/

public static LocalDateTime setYMD(LocalDateTime sourceDate, Integer year, Integer month, Integer dayOfMonth) {

return sourceDate.withYear(year).withMonth(month).withDayOfMonth(dayOfMonth);

}

/**

* 修改时分秒

* @param sourceDate

* @param hour

* @param minute

* @param second

* @return

*/

public static LocalDateTime setHMS(LocalDateTime sourceDate,Integer hour, Integer minute, Integer second) {

return sourceDate.withHour(hour).withMinute(minute).withSecond(second);

}

/**

* 计算相差的天数

* @param beginDate

* @param endDate

* @return

*/

public static int getInteverDays(LocalDate beginDate,LocalDate endDate){

Period period = Period.between(beginDate, endDate);

return period.getDays();

}

/**

* 日期加减

* @param num 数量

* @param unit 单位

* @param LocalDate 原日期

* @return LocalDate 增加后的日期

*/

@SuppressWarnings("static-access")

public static LocalDate addLocalDate(long num,ChronoUnit unit,final LocalDate localDate){

LocalDate resultDate;

if(num > 0){

resultDate = localDate.now().plus(num, unit);

} else {

resultDate = localDate.now().minus(Math.abs(num), unit);

}

return resultDate;

}

/**

* 日期时分秒加

* @param num 数量

* @param unit 单位

* @param localDateTime 原日期

* @return LocalDateTime 增加后的日期

*/

@SuppressWarnings("static-access")

public static LocalDateTime addLocalDateTime(long num,ChronoUnit unit,LocalDateTime localDateTime){

LocalDateTime resultDateTime;

if(num > 0){

resultDateTime = localDateTime.now().plus(num, unit);

} else {

resultDateTime = localDateTime.now().minus(Math.abs(num),unit);

}

return resultDateTime;

}

/**

* 时分秒加减

* @param num 数量

* @param unit 单位

* @param localTime 原日期

* @return LocalDateTime 增加后的日期

*/

@SuppressWarnings("static-access")

public static LocalTime addLocalTime(long num,ChronoUnit unit,LocalTime localTime){

LocalTime resultTime;

if(num > 0){

resultTime = localTime.now().plus(num, unit);

} else {

resultTime = localTime.now().minus(Math.abs(num), unit);

}

return resultTime;

}

public static void main(String[] args){

LocalDateTime time = LocalDateTime.now();

String rr = formatter(time, "yyyy-MM-dd HH:mm:ss");

System.out.println(rr);

LocalDateTime time2 = addLocalDateTime(-2, ChronoUnit.HOURS, time);

String yy = formatter(time2, "yyyy-MM-dd HH:mm:ss");

System.out.println(yy);

}

代码涉及时间日期类的使用等内容,具有简单注释,大家可自行参考。

总结

以上就是本文关于Java编程时间日期API实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值