package com.xnnovel.xy.utils;
import org.springframework.util.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类
*
* @author:Mr.Yang
* @date:2018/9/13 20:50
*/
public class DateUtils {
public static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
public static final String HOUR_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_PATTERN = "yyyy-MM-dd";
public static final String MONTH_PATTERN = "yyyy-MM";
public static final String MONTH_PATTERN_CHINA = "yyyy年MM月";
public static final String YEAR_PATTERN = "yyyy";
public static final String MINUTE_ONLY_PATTERN = "mm";
public static final String HOUR_ONLY_PATTERN = "HH";
public static final String MONTH_DAY_PATTREN = "MMdd";
//以下参数用来计算几秒前,几分钟前。
private static final long ONE_MINUTE = 60000L;
private static final long ONE_HOUR = 3600000L;
private static final long ONE_DAY = 86400000L;
private static final long ONE_WEEK = 604800000L;
private static final String ONE_SECOND_AGO = "秒前";
private static final String ONE_MINUTE_AGO = "分钟前";
private static final String ONE_HOUR_AGO = "小时前";
private static final String ONE_DAY_AGO = "天前";
private static final String ONE_MONTH_AGO = "月前";
private static final String ONE_YEAR_AGO = "年前";
/**
* 日期相加减天数
*
* @param date 如果为Null,则为当前时间
* @param days 加减天数
* @param includeTime 是否包括时分秒,true表示包含
* @return
* @throws ParseException
*/
public static Date dateAdd(Date date, int days, boolean includeTime) throws ParseException {
if (date == null) {
date = new Date();
}
if (!includeTime) {
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_PATTERN);
date = sdf.parse(sdf.format(date));
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}
/**
* 时间格式化成字符串
*
* @param date Date
* @param pattern StrUtils.DATE_TIME_PATTERN || StrUtils.DATE_PATTERN, 如果为空,则为yyyy-MM-dd
* @return
* @throws ParseException
*/
public static String dateFormat(Date date, String pattern) {
if (StringUtils.isEmpty(pattern)) {
pattern = DateUtils.DATE_PATTERN;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(date);
}
/**
* 字符串解析成时间对象
*
* @param dateTimeString String
* @param pattern StrUtils.DATE_TIME_PATTERN || StrUtils.DATE_PATTERN,如果为空,则为yyyy-MM-dd
* @return
* @throws ParseException
*/
public static Date dateParse(String dateTimeString, String pattern) throws ParseException {
if (StringUtils.isEmpty(pattern)) {
pattern = DateUtils.DATE_PATTERN;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(dateTimeString);
}
/**
* 将日期时间格式成只有日期的字符串(可以直接使用dateFormat,Pattern为Null进行格式化)
*
* @param dateTime Date
* @return
* @throws ParseException
*/
public static String dateTimeToDateString(Date dateTime) throws ParseException {
String dateTimeString = DateUtils.dateFormat(dateTime, DateUtils.DATE_TIME_PATTERN);
return dateTimeString.substring(0, 10);
}
/**
* 当时、分、秒为00:00:00时,将日期时间格式成只有日期的字符串,
* 当时、分、秒不为00:00:00时,直接返回
*
* @param dateTime Date
* @return
* @throws ParseException
*/
public static String dateTimeToDateStringIfTimeEndZero(Date dateTime) throws ParseException {
String dateTimeString = DateUtils.dateFormat(dateTime, DateUtils.DATE_TIME_PATTERN);
if (dateTimeString.endsWith("00:00:00")) {
return dateTimeString.substring(0, 10);
} else {
return dateTimeString;
}
}
/**
* 将日期时间格式成日期对象,和dateParse互用
*
* @param dateTime Date
* @return Date
* @throws ParseException
*/
public static Date dateTimeToDate(Date dateTime) throws ParseException {
Calendar cal = Calendar.getInstance();
cal.setTime(dateTime);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/**
* 时间加减小时
*
* @param startDate 要处理的时间,Null则为当前时间
* @param hours 加减的小时
* @return Date
*/
public static Date dateAddHours(Date startDate, int hours) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(startDate);
c.set(Calendar.HOUR, c.get(Calendar.HOUR) + hours);
return c.getTime();
}
/**
* 时间加减分钟
*
* @param startDate 要处理的时间,Null则为当前时间
* @param minutes 加减的分钟
* @return
*/
public static Date dateAddMinutes(Date startDate, int minutes) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(startDate);
c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) + minutes);
return c.getTime();
}
/**
* 时间加减秒数
*
* @param startDate 要处理的时间,Null则为当前时间
* @param seconds 加减的秒数
* @return
*/
public static Date dateAddSeconds(Date startDate, int seconds) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(startDate);
c.set(Calendar.SECOND, c.get(Calendar.SECOND) + seconds);
return c.getTime();
}
/**
* 时间加减天数
*
* @param startDate 要处理的时间,Null则为当前时间
* @param days 加减的天数
* @return Date
*/
public static Date dateAddDays(Date startDate, int days) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(startDate);
c.set(Calendar.DATE, c.get(Calendar.DATE) + days);
return c.getTime();
}
/**
* 时间加减月数
*
* @param startDate 要处理的时间,Null则为当前时间
* @param months 加减的月数
* @return Date
*/
public static Date dateAddMonths(Date startDate, int months) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInstance();
c.setTime(startDate);
c.set(Calendar.MONTH, c.get(Calendar.MONTH) + months);
return c.getTime();
}
/**
* 时间加减年数
*
* @param startDate 要处理的时间,Null则为当前时间
* @param years 加减的年数
* @return Date
*/
public static Date dateAddYears(Date startDate, int years) {
if (startDate == null) {
startDate = new Date();
}
Calendar c = Calendar.getInst
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本系统为基于jsp+ssm+mysql的牛码小说网,包含用户和管理员登录,功能如下: 用户:注册、登录系统,分类查看小说,小说详情,加入书架,推荐,收藏,评论小说;个人中心具有我的资料、我的书架、我的收藏、我的推荐、修改密码,支持上传头像。 管理员:小说管理(支持整本小说全部章节的爬取或者手动添加修改)、小说分类管理、轮播管理、评论管理、公告管理、系统用户(读者、管理员)管理。
资源推荐
资源详情
资源评论
收起资源包目录
java毕业设计之牛码小说网(ssm前后端完整源码).zip (2503个子文件)
debug.log.20181002 0B
debug.log.20181004 45KB
NovelManagerController.class 10KB
NovelManagerController.class 10KB
NovelManagerController.class 10KB
UserController.class 10KB
UserController.class 10KB
UserController.class 10KB
DateUtils.class 10KB
DateUtils.class 10KB
DateUtils.class 10KB
HttpClientUtils.class 8KB
HttpClientUtils.class 8KB
HttpClientUtils.class 8KB
BannerManagerController.class 7KB
BannerManagerController.class 7KB
BannerManagerController.class 7KB
NovelController.class 6KB
NovelController.class 6KB
NovelController.class 6KB
JSONUtils.class 5KB
JSONUtils.class 5KB
JSONUtils.class 5KB
ChapterController.class 5KB
ChapterController.class 5KB
ChapterController.class 5KB
Page.class 5KB
Page.class 5KB
Page.class 5KB
NoticeManagerController.class 5KB
NoticeManagerController.class 5KB
NoticeManagerController.class 5KB
ChapterManagerController.class 5KB
ChapterManagerController.class 5KB
ChapterManagerController.class 5KB
UserManagerController.class 5KB
UserManagerController.class 5KB
UserManagerController.class 5KB
JsoupHelper.class 5KB
JsoupHelper.class 5KB
JsoupHelper.class 5KB
PropertiesLoader.class 4KB
PropertiesLoader.class 4KB
PropertiesLoader.class 4KB
AdminManagerController.class 4KB
AdminManagerController.class 4KB
AdminManagerController.class 4KB
NovelManagerController$1.class 4KB
NovelManagerController$1.class 4KB
NovelManagerController$1.class 4KB
Novel.class 4KB
Novel.class 4KB
Novel.class 4KB
IndexController.class 4KB
IndexController.class 4KB
IndexController.class 4KB
ChapterServiceImpl.class 4KB
ChapterServiceImpl.class 4KB
ChapterServiceImpl.class 4KB
LoginController.class 3KB
LoginController.class 3KB
LoginController.class 3KB
TypeManagerController.class 3KB
TypeManagerController.class 3KB
TypeManagerController.class 3KB
AdminController.class 3KB
AdminController.class 3KB
AdminController.class 3KB
CommentManagerController.class 3KB
CommentManagerController.class 3KB
CommentManagerController.class 3KB
LoginInterceptor.class 3KB
LoginInterceptor.class 3KB
LoginInterceptor.class 3KB
FileUtils.class 3KB
FileUtils.class 3KB
CommentController.class 3KB
CommentController.class 3KB
CommentController.class 3KB
FileUtils.class 3KB
NovelServiceImpl.class 3KB
NovelServiceImpl.class 3KB
NovelServiceImpl.class 3KB
RecomsServiceImpl.class 2KB
RecomsServiceImpl.class 2KB
RecomsServiceImpl.class 2KB
FavorsServiceImpl.class 2KB
FavorsServiceImpl.class 2KB
FavorsServiceImpl.class 2KB
User.class 2KB
User.class 2KB
User.class 2KB
NovelSpider.class 2KB
NovelSpider.class 2KB
NovelSpider.class 2KB
StringUtils.class 2KB
StringUtils.class 2KB
CaptchaController.class 2KB
CaptchaController.class 2KB
CaptchaController.class 2KB
共 2503 条
- 1
- 2
- 3
- 4
- 5
- 6
- 26
资源评论
风月歌
- 粉丝: 1232
- 资源: 2529
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功