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
没有合适的资源?快使用搜索试试~ 我知道了~
基于SSM小说阅读网站设计小说爬虫设计
共863个文件
png:204个
gif:121个
class:98个
需积分: 3 0 下载量 122 浏览量
2023-10-18
14:50:12
上传
评论
收藏 41.11MB ZIP 举报
温馨提示
开发软件:Eclipse或Idea 数据库:mysql 后台服务器端采用spring+springmvc+mybatis框架整合。 前端页面使用bootstrap+jquery+layui等框架以及ajax技术。 数据库使用了轻量级mysql关系数据库。 小说数据源是顶点小说网,使用java的jsonp进行爬取。 本系统为基于jsp+ssm+mysql的牛码小说网,包含用户和管理员登录,功能如下: 用户:注册、登录系统,分类查看小说,小说详情,加入书架,推荐,收藏,评论小说;个人中心具有我的资料、我的书架、我的收藏、我的推荐、修改密码,支持上传头像。 管理员:小说管理(支持整本小说全部章节的爬取或者手动添加修改)、小说分类管理、轮播管理、评论管理、公告管理、系统用户(读者、管理员)管理。 系统界面美观,功能非常完整,使用目前主流框架ssm,适合作为ssm框架学习。 后台地址: http://localhost:8080/admin/login.html 管理员账号密码: superyang/123456 用户账号密码:xiaoniucr/123456
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM小说阅读网站设计小说爬虫设计 (863个子文件)
NovelManagerController.class 10KB
UserController.class 10KB
DateUtils.class 10KB
HttpClientUtils.class 8KB
BannerManagerController.class 7KB
NovelController.class 6KB
JSONUtils.class 5KB
ChapterController.class 5KB
Page.class 5KB
NoticeManagerController.class 5KB
ChapterManagerController.class 5KB
UserManagerController.class 5KB
JsoupHelper.class 5KB
PropertiesLoader.class 4KB
AdminManagerController.class 4KB
NovelManagerController$1.class 4KB
Novel.class 4KB
IndexController.class 4KB
ChapterServiceImpl.class 4KB
LoginController.class 3KB
TypeManagerController.class 3KB
AdminController.class 3KB
CommentManagerController.class 3KB
LoginInterceptor.class 3KB
CommentController.class 3KB
FileUtils.class 3KB
NovelServiceImpl.class 3KB
RecomsServiceImpl.class 2KB
FavorsServiceImpl.class 2KB
User.class 2KB
NovelSpider.class 2KB
Chapter.class 2KB
CaptchaController.class 2KB
HtmlUtils.class 2KB
StringUtils.class 2KB
PageQuery.class 2KB
NoticeController.class 2KB
FavorsController.class 2KB
RecomsController.class 2KB
Banner.class 2KB
ShelfController.class 2KB
ShelfServiceImpl.class 2KB
AdminServiceImpl.class 2KB
UserServiceImpl.class 2KB
MD5.class 2KB
MybatisGeneator.class 2KB
CommentServiceImpl.class 2KB
NoticeServiceImpl.class 2KB
Notice.class 2KB
BannerServiceImpl.class 2KB
TypeServiceImpl.class 2KB
IPUtils.class 2KB
Progress.class 2KB
Admin.class 2KB
Comment.class 2KB
NovelVo.class 1KB
ProgressServiceImpl.class 1KB
BaseController.class 1KB
Type.class 1KB
Recoms.class 1KB
Favors.class 1KB
Shelf.class 1KB
Global.class 1KB
ChapterMapper.class 1KB
R.class 1KB
ProgressVo.class 889B
ShelfVo.class 877B
CommentVo.class 867B
NovelMapper.class 846B
ChapterService.class 817B
NovelService.class 726B
UUIDUtils.class 668B
AdminMapper.class 663B
UserMapper.class 657B
NoticeMapper.class 631B
CommentMapper.class 594B
BannerMapper.class 593B
RecomsMapper.class 589B
FavorsMapper.class 589B
ChapterVo.class 587B
ShelfMapper.class 584B
TypeMapper.class 583B
FavorsVo.class 583B
RecomsVo.class 583B
AdminService.class 535B
UserService.class 529B
ProgressMapper.class 473B
CommentService.class 466B
BannerService.class 465B
NoticeService.class 465B
TypeService.class 455B
RecomsService.class 444B
FavorsService.class 444B
ShelfService.class 441B
Consts.class 317B
ProgressService.class 285B
App.class 274B
App.class 264B
.classpath 889B
org.eclipse.wst.common.component 547B
共 863 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
程序源码工
- 粉丝: 40
- 资源: 469
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功