package com.xiaoyu.common;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.format.DateTimeFormat;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 日期公用类
*/
public class DateUtils {
public static Date parse(String strDate) throws ParseException {
return parse(strDate, Constants.DEFAULT_DATE_FORMAT);
}
public static Date parse(String strDate, String pattern) throws ParseException {
return createDateFormat(pattern).parse(strDate);
}
public static String format(Date date) {
return format(date, Constants.DEFAULT_DATE_FORMAT);
}
public static String format(Date date, String pattern) {
if (date == null) {
throw new IllegalArgumentException("The date must not be null");
}
else {
return createDateFormat(pattern).format(date);
}
}
private static DateFormat createDateFormat(String pattern) {
return new SimpleDateFormat(pattern);
}
public static Date addYear(Date date, int amount) {
return add(date, Calendar.DAY_OF_YEAR, amount);
}
public static Date addMonth(Date date, int amount) {
return add(date, Calendar.DAY_OF_MONTH, amount);
}
public static Date addWeek(Date date, int amount) {
return add(date, Calendar.WEEK_OF_YEAR, amount);
}
public static Date addDay(Date date, int amount) {
return add(date, Calendar.DATE, amount);
}
public static Date reduceDay(Date date, int amount) {
return add(date, Calendar.DATE, -amount);
}
private static Date add(Date date, int field, int amount) {
if (date == null) {
throw new IllegalArgumentException("The date must not be null");
}
else {
Calendar c = createCalendar(date);
c.add(field, amount);
return c.getTime();
}
}
public static int getWeekOfYear(Date date) {
if (date == null) {
throw new IllegalArgumentException("The date must not be null");
}
else {
Calendar calendar = createCalendar(date);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
return calendar.get(Calendar.WEEK_OF_YEAR);
}
}
public static int getWeekOfDate(Date date) {
if (date == null) {
throw new IllegalArgumentException("The date must not be null");
}
else {
return createCalendar(date).get(Calendar.DAY_OF_WEEK) - 1;
}
}
public static Age getAge(Date birthday, Date desDay) {
if (birthday == null || desDay == null) {
throw new IllegalArgumentException("The birthday and desDay must not be null");
}
Calendar bCalendar = createCalendar(birthday);
Calendar dCalender = createCalendar(desDay);
int day = dCalender.get(Calendar.DAY_OF_MONTH) - bCalendar.get(Calendar.DAY_OF_MONTH);
int month = dCalender.get(Calendar.MONTH) - bCalendar.get(Calendar.MONTH);
int year = dCalender.get(Calendar.YEAR) - bCalendar.get(Calendar.YEAR);
if (day < 0) {
month--;
dCalender.add(Calendar.MONTH, -1);
day = day + dCalender.getActualMaximum(Calendar.DAY_OF_MONTH);
}
if (month < 0) {
year--;
month = (month + 12) % 12;
}
return new Age(year, month, day);
}
private static Calendar createCalendar(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
public static final class Age {
private int year;
private int month;
private int day;
public Age(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
public int getYear() {
return year;
}
public int getMonth() {
return month;
}
public int getDay() {
return day;
}
@Override
public String toString() {
return new StringBuilder().append(year).append("岁").append(month).append("个月").append(day).append("天")
.toString();
}
}
/**
* Description: 返回两个日期相隔的月数
* @author 潘深练
* @param preDate
* @param afterDate
* @return
*/
public static double getMonthsByCompare(String preDate,String afterDate){
String compareDate = preDate;
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_FORMAT_PATTEN);
double passMonths = 0.0d;
while(compareDate(compareDate,afterDate) > 0){
try {
Date compareD = sdf.parse(compareDate);
compareD = DateUtils.addMonth(compareD, 1);
compareDate = sdf.format(compareD);
} catch (ParseException e) {
e.printStackTrace();
}
passMonths++;
}
return passMonths;
}
public static int compareDate(String pre, String after) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_FORMAT_PATTEN);
Date preD = sdf.parse(pre);
Date afterD = sdf.parse(after);
if (preD.getTime() < afterD.getTime()) {
return 1;
} else if (preD.getTime() > afterD.getTime()) {
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
/**
* 获取系统时间
*/
public static String getSysDate() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATETIME_FORMAT_PATTEN);
return sdf.format(calendar.getTime());
}
/**
* 获取系统时间
*/
public static String getSysDateYYYYMMDD() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_FORMAT_PATTEN);
return sdf.format(calendar.getTime());
}
/**
*
* Description: 添加方法功能描述
* @param source
* @throws ParseException
* @return Date
*/
public static Date getSysDate(String source) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATETIME_FORMAT_PATTEN);
return sdf.parse(source);
}
/**
*
* Description: 添加方法功能描述
* @param source
* @param current
* @return Boolean
* @throws ParseException
*/
public static Boolean compareTimeOut(String source, String current) throws ParseException{
Calendar cal = (Calendar) Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATETIME_FORMAT_PATTEN);
cal.setTime(sdf.parse(source));
cal.add(Calendar.MINUTE, 5);
return cal.getTime().before(sdf.parse(current));
}
/**
*
* Description: 添加方法功能描述
* @param source
* @param current
* @throws ParseException
* @return Boolean
*/
public static Boolean redirectTimeOut(String source, String current) throws ParseException{
Calendar cal = (Calendar) Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATETIME_FORMAT_PATTEN);
cal.setTime(sdf.parse(source));
cal.add(Calendar.HOUR_OF_DAY, 8);
return cal.getTime().before(sdf.parse(current));
}
/**
* 获取系统日期"yyyy-MM-dd"(cyz于20100319增加)
*/
public static String getSysDay() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_FORMAT_PATTEN);
return sdf.format(calendar.getTime());
}
/**
* 取得当前日期的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay) {
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATE_FORMAT_PATTEN);
Date date = null;
try {
date = sdf.parse(specifiedDay);
} catch (Exception e) {
System.out.println("getSpecifiedDayBefore:" + e.toString());
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = sdf.format(c.getTime());
return dayBefore;
}
/**
* 获取当天之前days天的日期 (零时零分零秒) 如果当前时间为 2011-09-25 10:10:10 则 dayBeforeToday(5)
* 结果为2011-09-20 00:00:00
*/
public static String dayBeforeToday(int days) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(Constants.DATETIME_F
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
ssm+maven+swagger+上传功能+框架整合 (144个子文件)
DateUtils.class 13KB
Task.class 12KB
StringUtils.class 11KB
Constants.class 6KB
FileServiceImpl.class 5KB
ScheduleJob.class 4KB
FileController.class 4KB
ImgCompress.class 4KB
OvalValidator.class 3KB
DefaultTransformerFactory.class 3KB
TaskUser.class 3KB
MessageCode.class 2KB
MD5.class 2KB
TaskServiceImpl.class 2KB
TaskController.class 2KB
ValidationException.class 2KB
SwaggerConfig.class 2KB
ResponseMessage.class 2KB
PropertiesUtil.class 2KB
DefaultTransformerFactory$MatchKey.class 2KB
PropertiesHelper.class 2KB
TransformerBeanPostProcessor.class 2KB
ApplicationException.class 2KB
NullSafeIterable.class 1KB
File.class 1KB
NullSafeIterable$NullSafeIterator.class 1KB
DateUtils$Age.class 1KB
Violation.class 837B
QuartzScheduleMapper.class 734B
TaskUserMapper.class 583B
FileMapper.class 508B
FileService.class 505B
ObjectTransformer.class 396B
TaskMapper.class 392B
POJOValidator.class 386B
TransformerFactory.class 383B
TaskService.class 221B
.classpath 1KB
.classpath 1KB
.classpath 1KB
org.eclipse.wst.common.component 1KB
org.eclipse.wst.common.component 321B
org.eclipse.wst.common.component 320B
org.eclipse.wst.jsdt.ui.superType.container 49B
demo.css 1KB
file.html 1KB
DateUtils.java 19KB
Task.java 13KB
StringUtils.java 10KB
Constants.java 7KB
ScheduleJob.java 4KB
FileServiceImpl.java 3KB
DefaultTransformerFactory.java 3KB
FileController.java 3KB
ImgCompress.java 3KB
TaskUser.java 2KB
OvalValidator.java 2KB
TaskServiceImpl.java 2KB
NullSafeIterable.java 2KB
TaskController.java 2KB
TransformerBeanPostProcessor.java 1KB
ResponseMessage.java 1KB
SwaggerConfig.java 1KB
MessageCode.java 1KB
ValidationException.java 1KB
MD5.java 1012B
PropertiesUtil.java 979B
ApplicationException.java 966B
File.java 915B
QuartzScheduleMapper.java 589B
Violation.java 584B
FileService.java 561B
PropertiesHelper.java 525B
TaskUserMapper.java 501B
TaskMapper.java 354B
FileMapper.java 337B
TaskService.java 287B
POJOValidator.java 216B
ObjectTransformer.java 171B
TransformerFactory.java 156B
jquery-1.9.1.min.js 90KB
file.js 2KB
config.js 148B
.jsdtscope 639B
upload.jsp 420B
index.jsp 57B
MANIFEST.MF 109B
MANIFEST.MF 109B
MANIFEST.MF 109B
org.eclipse.wst.jsdt.ui.superType.name 6B
del.png 3KB
green.png 1KB
yellow.png 974B
editor.png 349B
blue.png 273B
org.eclipse.jdt.core.prefs 664B
org.eclipse.jdt.core.prefs 430B
org.eclipse.jdt.core.prefs 430B
org.eclipse.m2e.core.prefs 90B
org.eclipse.m2e.core.prefs 90B
共 144 条
- 1
- 2
资源评论
Brian_Lucky
- 粉丝: 972
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功