package com.test.utils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.*;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @version V1.0
* @File: DateUtils
* @Description: 常用的时间处理方法集合工具类
* @author: aitree
*/
public class DateUtils {
/**
* 时间格式常量
*/
public static final String COMMON_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String COMMON_PATTERN_TYPE2 = "yyyy/MM/dd HH:mm:ss";
public static final String SHORT_PATTERN = "yyyy-MM-dd";
public static final String SHORT_PATTERN_TYPE2 = "yyyy/MM/dd";
public static final String LONG_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
public static final String SUP_SHORT_PATTERN = "yyyyMMdd";
public static final String SUP_LONG_PATTERN = "yyyyMMddHHmmss";
public static final String YEAR_MONTH = "yyyyMM";
public static final String CN_SHORT_PATTERN = "yyyy年MM月dd日";
public static final String DDMM_PATTERN = "ddMM";
/**
* 1、将 String 解析为 date
*
* @param dateString 待解析的日期字符串
* @param pattern 日期字符串的时间格式
* @return
*/
public static Date trans2Date(String dateString, String pattern) {
String fRTN = StringUtils.isNotBlank(pattern) ? pattern : COMMON_PATTERN;
DateTimeFormatter format = DateTimeFormat.forPattern(fRTN);
DateTime dt = DateTime.parse(dateString, format);
return dt.toDate();
}
public static String formatDate2String(String dateString, String fromPattern, String toPattern) {
String tRTN = StringUtils.isNotBlank(toPattern) ? toPattern : COMMON_PATTERN;
DateTimeFormatter format = DateTimeFormat.forPattern(fromPattern);
DateTime dt = DateTime.parse(dateString, format);
return dt.toString(tRTN);
}
/**
* 3、Date类型日期转字符串格式化输出
*
* @param date 待格式化的日期
* @param pattern 格式化后的格式
* @return
*/
public static String formatDate2String(Date date, String pattern) {
String fRTN = StringUtils.isNotBlank(pattern) ? pattern : COMMON_PATTERN;
DateTimeFormatter format = DateTimeFormat.forPattern(fRTN);
return new DateTime(date).toString(format);
}
/**
* 4、增加天数后的Date日期
*
* @param date 起点日期(date/string)
* @param daysCount 增加天数
* @return
*/
public static <T> Date add(T date, int daysCount) {
DateTime dt = new DateTime(date);
return dt.plusDays(daysCount).toDate();
}
/**
* 5、计算日期{@link Date}增加某天数后的Date类型日期
*
* @param d Date
* @param amountToAdd 天数增加值
* @return Date
*/
// public static Date plusDays(Date d, long amountToAdd) {
// return toDate(plusDays(toLocalDateTime(d), amountToAdd));
// }
// public static LocalDateTime plusDays(LocalDateTime ldt, long amountToAdd) {
// return ldt.plusDays(amountToAdd);
// }
/**
*6、减少天数后的日期
*
* @param date 起点日期(date/string)
* @param daysCount 减少的天数
* @return
*/
public static <T> Date sub(T date, int daysCount) {
DateTime dt = new DateTime(date);
return dt.minusDays(daysCount).toDate();
}
/**
* 7、增加月数后的日期
*
* @param date 起点日期(date/string)
* @param months 增加月数
* @return
*/
public static <T> Date addMonths(T date, int months) {
DateTime dt = new DateTime(date);
return dt.plusMonths(months).toDate();
}
public static <T> Date subMonths(T date, int months) {
DateTime dt = new DateTime(date);
return dt.minusMonths(months).toDate();
}
public static <T> Date subYears(T date, int years) {
DateTime dt = new DateTime(date);
return dt.minusYears(years).toDate();
}
/**
* 10、计算月份差
* @param lastRepaymentDate
* @param fundLoanDate
* @return
*/
public static int getMonthParse(String lastRepaymentDate, String fundLoanDate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Calendar bef = Calendar.getInstance();
Calendar aft = Calendar.getInstance();
bef.setTime(sdf.parse(fundLoanDate));
aft.setTime(sdf.parse(lastRepaymentDate));
int result = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);
int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR))*12;
return month+result;
}
/**
* 11、计算两个日期的间隔天数
* 目前不对两个日期比较大小,如放错顺序,则结果为负数的天数
*
* @param dateMin 起点日期(date/string)
* @param dateMax 结束日期(date/string)
* @return
*/
public static <T> int betweenDays(T dateMin, T dateMax) {
LocalDate start = new LocalDate(dateMin);
LocalDate end = new LocalDate(dateMax);
return Days.daysBetween(start, end).getDays();
}
/**
* 12、计算两个时间的毫秒间隔
* 目前不对两个时间参数比较大小,如放错顺序,则结果为负数的毫秒间隔
*
* @param dateMin 起点日期(date/string)
* @param dateMax 结束日期(date/string)
* @return
*/
public static <T> long betweenMs(T dateMin, T dateMax) {
DateTime start = new DateTime(dateMin);
DateTime end = new DateTime(dateMax);
return end.getMillis() - start.getMillis();
}
/**
* 13、判断是否为交易日/工作日
*
* @param date 待判断日期(date/string)
* @return
*/
public static <T> boolean isTradeDay(T date) {
boolean isTD = false;
DateTime dt = new DateTime(date);
if (isSpWorkDay(dt) || (!isHoliday(dt) && !isWeekEnd(dt))) {
isTD = true;
}
return isTD;
}
//14、判断是否是周末*/
private static boolean isWeekEnd(DateTime dt) {
boolean isWE = false;
int wd = dt.dayOfWeek().get();
switch (wd) {
case 6:
case 7:
isWE = true;
break;
default:
break;
}
return isWE;
}
//15、判断是否为国家法定节假日*/
private static boolean isHoliday(DateTime dt) {
boolean isHD = false;
//TODO:get days from redis
List<String> holidayList = new ArrayList<String>();
if (holidayList != null) {
for (String holiday : holidayList) {
if (dt.isEqual(new DateTime(holiday))) {
isHD = true;
break;
}
}
}
return isHD;
}
//16、判断是否为国家调整后的工作日*/
private static boolean isSpWorkDay(DateTime dt) {
boolean isSpWD = false;
//TODO:get days from redis
List<String> spWorkDayList = new ArrayList<String>();
if (spWorkDayList != null) {
for (String spWorkDay : spWorkDayList) {
if (dt.isEqual(new DateTime(spWorkDay))) {
isSpWD = true;
break;
}
}
}
return isSpWD;
}
public static final Date diffDate(Date aDate, int field, int diff) {
Calendar cal = Calendar.getInstance();
cal.setTime(aDate);
cal.add(field, diff);
return cal.getTime();
没有合适的资源?快使用搜索试试~ 我知道了~
基于ssm框架前后端分离的简历管理系统源代码+数据库,javaweb课程设计
共338个文件
jar:127个
class:75个
xml:43个
需积分: 0 9 下载量 62 浏览量
2023-02-21
15:14:15
上传
评论 2
收藏 129.79MB ZIP 举报
温馨提示
基于ssm框架前后端分离的简历管理系统源代码+数据库,javaweb课程设计
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm框架前后端分离的简历管理系统源代码+数据库,javaweb课程设计 (338个子文件)
DateUtils.class 7KB
DateUtils.class 7KB
Spec.class 5KB
DateUtil.class 5KB
DateUtil.class 5KB
Member.class 5KB
RusemeController.class 4KB
DBConnection.class 4KB
DBConnection.class 4KB
MybatisTest.class 4KB
N_record.class 4KB
UserServiceImpl.class 4KB
UserController.class 4KB
NCO.class 3KB
violation_spec_record.class 3KB
violation_spec_record.class 3KB
Resume.class 3KB
User.class 3KB
Violation_spec_record.class 3KB
Regulator.class 3KB
User.class 3KB
User.class 3KB
resume.class 3KB
resume.class 3KB
N_result.class 3KB
regulator.class 3KB
regulator.class 3KB
Result.class 2KB
Result.class 2KB
UserController_mybatis.class 2KB
UserController_mybatis.class 2KB
Admin.class 2KB
ResumeServiceImpl.class 2KB
ResumeServiceImpl.class 2KB
LoginController.class 2KB
regulatorServiceImpl.class 2KB
regulatorServiceImpl.class 2KB
violationImpl.class 2KB
violationImpl.class 2KB
regulatorController_mybatis.class 2KB
regulatorController_mybatis.class 2KB
LoginInterceptor.class 2KB
UserDao_jdbcTemplateImpl.class 2KB
CrossInterceptor.class 2KB
CrossInterceptor.class 2KB
UserDao_jdbcTemplateImpl$UserMapper.class 1KB
ResultUtils.class 1KB
ResultUtils.class 1KB
ResumeController_mybatis.class 927B
ResumeController_mybatis.class 927B
ResumeDaoTest.class 893B
DemoAplication.class 684B
TestController.class 615B
TestController.class 615B
violationDao.class 548B
violationDao.class 548B
regulatorDao.class 500B
regulatorDao.class 500B
ResumeDao.class 483B
ResumeDao.class 483B
ResumeDao.class 474B
UserDao.class 470B
UserDao.class 470B
UserDao.class 466B
UserService.class 434B
UserService.class 434B
violationService.class 351B
violationService.class 351B
regulatorService.class 327B
regulatorService.class 327B
ResumeService.class 316B
ResumeService.class 316B
spec.class 269B
spec.class 269B
UserDao_jdbcTemplate.class 243B
layer.css 14KB
layer.css 14KB
layer.css 5KB
layer.css 5KB
loading-0.gif 6KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-2.gif 2KB
loading-1.gif 701B
loading-1.gif 701B
.gitignore 176B
natregistration_system.iml 1KB
hibernate-core-5.4.21.Final.jar 6.99MB
byte-buddy-1.10.10.jar 3.31MB
tomcat-embed-core-9.0.65.jar 3.27MB
poi-5.2.2.jar 2.79MB
druid-1.1.21.jar 2.7MB
commons-math3-3.6.1.jar 2.11MB
aspectjweaver-1.9.4.jar 1.95MB
mybatis-3.5.9.jar 1.73MB
lombok-1.18.12.jar 1.71MB
spring-boot-autoconfigure-2.7.4.jar 1.6MB
spring-web-5.3.23.jar 1.57MB
log4j-core-2.10.0.jar 1.52MB
jackson-databind-2.13.4.jar 1.47MB
共 338 条
- 1
- 2
- 3
- 4
资源评论
程序员柳
- 粉丝: 6068
- 资源: 1155
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功