package com.example.demo.utils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.Days;
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具
*/
public class DateUtil {
public static final long ONE_HOUR_TIME_LONG = 3600000;
/**
* 年(yyyy)
*/
public static final String YEAR = "yyyy";
/**
* 年-月(yyyy-MM)
*/
public static final String YEAR_MONTH = "yyyy-MM";
/**
* 年-月-日(yyyy-MM-dd)
*/
public static final String YEAR_MONTH_DAY = "yyyy-MM-dd";
/**
* 年月日(yyyyMMdd)
*/
public static final String YEAR_MONTH_DAY_SIMPLE = "yyyyMMdd";
/**
* 年-月-日 小时(yyyy-MM-dd HH)
*/
public static final String YEAR_MONTH_DAY_HOUR = "yyyy-MM-dd HH";
/**
* 年-月-日 小时(yyyy-MM-dd HH)中文输出
*/
public static final String YEAR_MONTH_DAY_HOUR_CN = "yyyy年MM月dd日HH时";
/**
* 年-月-日 小时:分钟(yyyy-MM-dd HH:mm)
*/
public static final String YEAR_MONTH_DAY_HOUR_MINUTE = "yyyy-MM-dd HH:mm";
/**
* 年-月-日 小时:分钟:秒钟(yyyy-MM-dd HH:mm:ss)
*/
public static final String YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss";
/**
* 年月日小时分钟秒钟(yyyyMMddHHmmss)
*/
public static final String YEAR_MONTH_DAY_HOUR_MINUTE_SECOND_SIMPLE = "yyyyMMddHHmmss";
/**
* 小时:分钟:秒钟(HH:mm:ss)
*/
public static final String HOUR_MINUTE_SECOND = "HH:mm:ss";
/**
* 小时:分钟(HH:mm)
*/
public static final String HOUR_MINUTE = "HH:mm";
/**
* 月.日(M.d)
*/
public static final String MONTH_DAY = "M.d";
public static final String REG_EXP_DATE = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
/**
* 一天的秒数
*/
private static final int DAY_SECOND = 24 * 60 * 60;
/**
* 一小时的秒数
*/
private static final int HOUR_SECOND = 60 * 60;
/**
* 一分钟的秒数
*/
private static final int MINUTE_SECOND = 60;
public DateUtil() {
System.setProperty("user.timezone", "Asia/Shanghai");
}
/**
* 获取当前时间
*
* @return 返回当前时间
*/
public static Date getCurrent() {
return new Date();
}
/**
* 获取当前时间并格式化
*
* @return 返回当前时间
*/
public static String getCurrentDate(String format) {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
/**
* 获取下个月时间并格式化
*
* @return 返回当前时间
*/
public static String getNextDate(String format) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
SimpleDateFormat dft = new SimpleDateFormat(format);
String preMonth = dft.format(cal.getTime());
return preMonth;
}
/**
* 格式化日期时间
*
* @param date Date对象
* @param pattern 模式
* @return 格式化后的日期时间字符串
*/
public static String format(Date date, String pattern) {
if (date == null)
return "";
return new DateTime(date).toString(pattern);
}
/**
* 格式化日期时间字符串
*
* @param dateString 日期时间字符串
* @param pattern 模式
* @return Date对象
*/
public static Date formatDateString(String dateString, String pattern) {
try {
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(pattern);
return dateTimeFormatter.parseDateTime(dateString).toDate();
} catch (Exception e) {
return null;
}
}
/**
* 根据秒数获得x天x小时x分钟x秒字符串
*
* @param second 秒数
* @return x天x小时x分钟x秒字符串
*/
public static String getDayHourMinuteSecond(int second) {
if (second == 0) {
return "0秒";
}
StringBuilder sb = new StringBuilder();
int days = second / DAY_SECOND;
if (days > 0) {
sb.append(days);
sb.append("天");
second -= days * DAY_SECOND;
}
int hours = second / HOUR_SECOND;
if (hours > 0) {
sb.append(hours);
sb.append("小时");
second -= hours * HOUR_SECOND;
}
int minutes = second / MINUTE_SECOND;
if (minutes > 0) {
sb.append(minutes);
sb.append("分钟");
second -= minutes * MINUTE_SECOND;
}
if (second > 0) {
sb.append(second);
sb.append("秒");
}
return sb.toString();
}
/**
* 根据秒数获得x天x小时x分钟字符串
*
* @param second 秒数
* @return x天x小时x分钟字符串
*/
public static String getDayHourMinute(int second) {
if (second == 0) {
return "0分钟";
}
StringBuilder sb = new StringBuilder();
int days = second / DAY_SECOND;
if (days > 0) {
sb.append(days);
sb.append("天");
second -= days * DAY_SECOND;
}
int hours = second / HOUR_SECOND;
if (hours > 0) {
sb.append(hours);
sb.append("小时");
second -= hours * HOUR_SECOND;
}
int minutes = second / MINUTE_SECOND;
if (minutes > 0) {
sb.append(minutes);
sb.append("分钟");
}
return sb.toString();
}
/**
* 获取只含有年月日的DateTime对象
*
* @param dateTime DateTime对象
* @return 只含有年月日的DateTime对象
*/
public static DateTime getDateOnly(DateTime dateTime) {
return new DateTime(dateTime.toString(YEAR_MONTH_DAY));
}
/**
* 获取当前周的周一和下周一
*
* @return 日期数组(索引0为周一,索引1为下周一)
*/
public static Date[] getMondayAndNextMonday() {
DateTime dateTime = getDateOnly(new DateTime());
DateTime monday = dateTime.dayOfWeek().withMinimumValue();
DateTime nextMonday = monday.plusDays(7);
return new Date[]{monday.toDate(), nextMonday.toDate()};
}
/**
* 获取指定时间的周一和周日
*
* @param dateTime DateTime对象
* @return 日期数组(索引0为周一,索引1为周日)
*/
public static Date[] getMondayAndSunday(DateTime dateTime) {
dateTime = getDateOnly(dateTime);
DateTime monday = dateTime.dayOfWeek().withMinimumValue();
DateTime sunday = monday.plusDays(6);
return new Date[]{monday.toDate(), sunday.toDate()};
}
/**
* 和当前时间相比的天数差(正数为大于天数,负数为小于天数,零为同一天)
*
* @param date Date对象
* @return 和当前时间相比的天数差
*/
public static int compareDaysWithNow(Date date) {
return Days.daysBetween(new DateTime(), new DateTime(date)).getDays();
}
/**
* 和今天相比的天数差(正数为大于天数,负数为小于天数,零为同一天)
*
* @param date Date对象
* @return 和今天相比的天数差
*/
public static int compareDaysWithToday(Date date) {
DateTime today = new
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip该项目是个人98分高分大作业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。 基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip该项目是个人98分高分大作业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip该项目是个人98分高分大作业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip该项目是个人98分高分大作业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip该项目是个人98分高分大作业设计项目源码,已获导师指导认可通过,都经过严格调试,确保可以运行!放心下载使用。基于Springboot
资源推荐
资源详情
资源评论
收起资源包目录
基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码.zip (35个子文件)
基于Springboot+MyBatis-Plus实现多租户动态数据源模式源码
pom.xml 4KB
src
test
java
com
example
demo
DemoApplicationTests.java 215B
main
resources
mapper
TUserMapper.xml 212B
PeopleConfigMapper.xml 219B
TenantInfoMapper.xml 217B
application.properties 1KB
java
com
example
demo
DemoApplication.java 442B
controller
PeopleConfigController.java 940B
TUserController.java 976B
TenantInfoController.java 4KB
utils
DateUtil.java 27KB
SpringContextUtils.java 3KB
MyGenerate.java 4KB
CustomUtil.java 7KB
ResultEnum.java 2KB
StringUtil.java 5KB
dao
TenantInfoMapper.java 280B
PeopleConfigMapper.java 298B
TUserMapper.java 274B
service
ITenantInfoService.java 284B
ITUserService.java 278B
impl
TenantInfoServiceImpl.java 507B
PeopleConfigServiceImpl.java 533B
TUserServiceImpl.java 481B
IPeopleConfigService.java 302B
model
TUser.java 3KB
PeopleConfig.java 2KB
CustomResult.java 6KB
TenantInfo.java 2KB
datasource
DynamicDataSourceContextHolder.java 2KB
DynamicDataSource.java 2KB
DynamicDataSourceAspect.java 2KB
MybatisPlusConfig.java 4KB
DynamicDataSourceInit.java 2KB
.gitignore 278B
共 35 条
- 1
资源评论
盈梓的博客
- 粉丝: 7040
- 资源: 1605
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功