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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 基于java开发的驾校理论课模拟考试系统源码+项目说明(毕设项目).zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java开发的驾校理论课模拟考试系统源码+项目说明(毕设项目).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
资源评论
z同学的编程之路
- 粉丝: 2557
- 资源: 2135
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电赛数据集-数字5,6,7,8识别
- 基于Vue的长沙理工大学Java大作业设计源码
- matlab基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合
- 基于C语言+stm32f4的modbus tcp上下位机通信项目+上位机由LabVIEW编写+源码+开发文档+视频教程(高分项目
- 基于Python的Struts2漏洞扫描器设计源码
- HTML+CSS制作的个人博客网页.zip
- 基于htmlde 爱心代码,但HTML网页源码.zip
- 51单片机实现LED流水灯
- 基于Python的obEspoir分布式游戏框架设计源码
- 基于python的机械设计实用计算器,可计算电动机,传动装置,V带轮,齿轮,轴,轴承的几何或者力,运动学参数数值+源码+开发文档
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功