package me.zhengjie.modules.mockexam.utils;
import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author : Mingxuan_x
* @version : 1.0
* @Description: 日期时间工具类
* @Telephone : 15135964789
* @createDate : 2021/4/1 11:06
* @updateUser : Mingxuan_x
* @updateDate : 2021/4/1 11:06
* @updateRemark : 修改内容
**/
public class LocalDateUtil {
/**
* Date转换成LocalDate
*
* @return:
* @Author: Mingxuan_X
* @Date: 2021/4/1
*/
public static LocalDate date2LocalDate(Date date) {
if (null == date) {
return null;
}
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
}
/**
* LocalDate转换成Date
*
* @return:
* @Author: Mingxuan_X
* @Date: 2021/4/1
*/
public static Date localDate2Date(LocalDate localDate) {
if (null == localDate) {
return null;
}
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
/**
* LocalDateTime转成Date
*
* @return:
* @Author: Mingxuan_X
* @Date: 2021/4/1
*/
public static Date localDateTime2Date(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
/**
* Date转换为LocalDateTime
*
* @param date
*/
public static LocalDateTime date2LocalDateTime(Date date) {
if (null == date) {
return null;
}
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
return instant.atZone(zoneId).toLocalDateTime();
}
/**
* 获取当前日期和时间字符串.
*
* @return String 日期时间字符串,例如 2015-08-11 09:51:53
*/
public static String getLocalDateTimeStr() {
return format(LocalDateTime.now(), DATETIME_PATTERN);
}
/**
* 获取当前日期字符串.
*
* @return String 日期字符串,例如2015-08-11
*/
public static String getLocalDateStr() {
return format(LocalDate.now(), DATE_PATTERN);
}
/**
* 获取当前时间字符串.
*
* @return String 时间字符串,例如 09:51:53
*/
public static String getLocalTimeStr() {
return format(LocalTime.now(), TIME_PATTERN);
}
/**
* 获取当前星期字符串.
*
* @return String 当前星期字符串,例如 星期二
*/
public static String getDayOfWeekStr() {
return format(LocalDate.now(), "E");
}
/**
* 获取指定日期是星期几
*
* @param localDate 日期
* @return String 星期几
*/
public static String getDayOfWeekStr(LocalDate localDate) {
String[] weekOfDays = {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY};
int dayOfWeek = localDate.getDayOfWeek().getValue() - 1;
return weekOfDays[dayOfWeek];
}
/**
* 获取日期时间字符串
*
* @param temporal 需要转化的日期时间
* @param pattern 时间格式
* @return String 日期时间字符串,例如 2015-08-11 09:51:53
*/
public static String format(TemporalAccessor temporal, String pattern) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
return dateTimeFormatter.format(temporal);
}
/**
* 日期时间字符串转换为日期时间(java.time.LocalDateTime)
*
* @param localDateTimeStr 日期时间字符串
* @param pattern 日期时间格式 例如DATETIME_PATTERN
* @return LocalDateTime 日期时间
*/
public static LocalDateTime parseLocalDateTime(String localDateTimeStr, String pattern) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
return LocalDateTime.parse(localDateTimeStr, dateTimeFormatter);
}
/**
* 日期字符串转换为日期(java.time.LocalDate)
*
* @param localDateStr 日期字符串
* @param pattern 日期格式 例如DATE_PATTERN
* @return LocalDate 日期
*/
public static LocalDate parseLocalDate(String localDateStr, String pattern) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(pattern);
return LocalDate.parse(localDateStr, dateTimeFormatter);
}
/**
* 获取指定日期时间加上指定数量日期时间单位之后的日期时间.
*
* @param localDateTime 日期时间
* @param num 数量
* @param chronoUnit 日期时间单位
* @return LocalDateTime 新的日期时间
*/
public static LocalDateTime plus(LocalDateTime localDateTime, int num, ChronoUnit chronoUnit) {
return localDateTime.plus(num, chronoUnit);
}
/**
* 获取指定日期时间减去指定数量日期时间单位之后的日期时间.
*
* @param localDateTime 日期时间
* @param num 数量
* @param chronoUnit 日期时间单位
* @return LocalDateTime 新的日期时间
*/
public static LocalDateTime minus(LocalDateTime localDateTime, int num, ChronoUnit chronoUnit) {
return localDateTime.minus(num, chronoUnit);
}
/**
* 根据ChronoUnit计算两个日期时间之间相隔日期时间
*
* @param start 开始日期时间
* @param end 结束日期时间
* @param chronoUnit 日期时间单位
* @return long 相隔日期时间
*/
public static long getChronoUnitBetweenByLocalDateTime(LocalDateTime start, LocalDateTime end, ChronoUnit chronoUnit) {
if (start.isEqual(end)) {
return 0;
}
return Math.abs(start.until(end, chronoUnit));
}
/**
* 根据ChronoUnit计算两个日期之间相隔年数或月数或天数
*
* @param start 开始日期
* @param end 结束日期
* @param chronoUnit 日期时间单位,(ChronoUnit.YEARS,ChronoUnit.MONTHS,ChronoUnit.WEEKS,ChronoUnit.DAYS)
* @return long 相隔年数或月数或天数
*/
public static long getChronoUnitBetweenByLocalDate(LocalDate start, LocalDate end, ChronoUnit chronoUnit) {
if (start.isEqual(end)) {
return 0;
}
return Math.abs(start.until(end, chronoUnit));
}
/**
* 获取本年第一天的日期字符串
*
* @return String 格式:yyyy-MM-dd 00:00:00
*/
public static String getFirstDayOfYearStr() {
return getFirstDayOfYearStr(LocalDateTime.now());
}
/**
* 获取本年最后一天的日期字符串
*
* @return String 格式:yyyy-MM-dd 23:59:59
*/
public static String getLastDayOfYearStr() {
return getLastDayOfYearStr(LocalDateTime.now());
}
/**
* 获取指定日期当年第一天的日期字符串
*
* @param localDateTime 指定日期时间
* @return String 格式:yyyy-MM-dd 00:00:00
*/
public static String getFirstDayOfYearStr(LocalDateTime localDateTime) {
return getFirstDayOfYearStr(localDateTime, DATETIME_PATTERN);
}
/**
* 获取指定日期当年最后一天的日期字符串
*
* @param localDateTime 指定日期时间
* @return String 格式:yyyy-MM-dd 23:59:59
*/
public static String getLastDayOfYearStr(LocalDateTime localDateTime) {
return getLastDayOfYearStr(localDateTime, DATETIM
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+Vue 驾校理论课模拟考试系统(自动化部署)完整源码+说明.zip (687个子文件)
nginx.conf 714B
ip2region.db 6.2MB
.env.development 213B
Dockerfile 643B
Dockerfile 147B
.editorconfig 244B
.eslintignore 34B
index.ftl 7KB
ServiceImpl.ftl 6KB
Controller.ftl 3KB
taskAlarm.ftl 3KB
Entity.ftl 2KB
Service.ftl 2KB
QueryCriteria.ftl 2KB
email.ftl 2KB
Dto.ftl 1KB
Repository.ftl 1KB
Mapper.ftl 1KB
api.ftl 437B
401.gif 160KB
.gitignore 516B
.gitignore 256B
index.html 488B
favicon.ico 5KB
LocalDateUtil.java 20KB
RedisUtils.java 19KB
GenUtil.java 17KB
DeployServiceImpl.java 15KB
MenuServiceImpl.java 15KB
MeQuestionController.java 13KB
FileUtil.java 12KB
DeptServiceImpl.java 10KB
QiNiuServiceImpl.java 10KB
MeQuestionServiceImpl.java 10KB
UserServiceImpl.java 10KB
QueryHelp.java 10KB
SpringSecurityConfig.java 10KB
StringUtils.java 9KB
UserController.java 9KB
MeUserBehaviorServiceImpl.java 9KB
RoleServiceImpl.java 9KB
CrawlingService.java 8KB
GeneratorServiceImpl.java 8KB
MonitorServiceImpl.java 8KB
RedisConfig.java 8KB
QuartzJobServiceImpl.java 8KB
AuthorizationController.java 8KB
DockingFileUtils.java 7KB
RsaUtils.java 7KB
MeUserBehaviorController.java 7KB
HttpUtil.java 7KB
LogServiceImpl.java 7KB
DataHandleUtil.java 7KB
OnlineUserService.java 6KB
ExecutionJob.java 6KB
CodeGenerationUtil.java 6KB
QuartzManage.java 6KB
MenuController.java 6KB
AliPayController.java 6KB
DeployController.java 6KB
SqlUtils.java 6KB
RoleController.java 6KB
LocalStorageServiceImpl.java 5KB
SwaggerConfig.java 5KB
MeWrongQuestionServiceImpl.java 5KB
AliPayServiceImpl.java 5KB
QuartzJobController.java 5KB
JobServiceImpl.java 5KB
FastDFSUtil.java 5KB
SpringContextHolder.java 5KB
AppServiceImpl.java 5KB
MeFavoritesServiceImpl.java 5KB
ServerDeployServiceImpl.java 5KB
DatabaseController.java 5KB
DictServiceImpl.java 5KB
DateUtil.java 4KB
DeptController.java 4KB
QiniuController.java 4KB
GeneratorController.java 4KB
DatabaseServiceImpl.java 4KB
TokenProvider.java 4KB
TokenFilter.java 4KB
LoginProperties.java 4KB
DataTypeEnum.java 4KB
GlobalExceptionHandler.java 4KB
LogController.java 4KB
UserRepository.java 4KB
BadConfigurationException.java 4KB
DeployHistoryServiceImpl.java 4KB
UserDetailsServiceImpl.java 4KB
MeFavoritesController.java 4KB
DictDetailController.java 4KB
EmailServiceImpl.java 4KB
ConfigurerAdapter.java 4KB
LimitAspect.java 4KB
LocalStorageController.java 4KB
DictDetailServiceImpl.java 4KB
User.java 4KB
ServerDeployController.java 4KB
WebSocketServer.java 4KB
共 687 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
龙年行大运
- 粉丝: 1006
- 资源: 3849
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功