package com.ponshine.oa.common.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
public class DateUtil {
public static final String hour = "HH:mm:ss";//年份
public static final String year = "yyyy";//年份
public static final String month = "yyyy-MM";//月份
public static final String day = "yyyy-MM-dd";//完整日期
public static final String min = "yyyy-MM-dd HH:mm";//完整时分
public static final String second = "yyyy-MM-dd HH:mm:ss";//完整时分秒
public static final String milliseconds = "yyyyMMddHHmmssSSS";//完整时分秒毫秒
/**
将时间格式化,以字符串形式返回
* */
public static String changeDateToString(Date date,String formatStr){
DateFormat format = new SimpleDateFormat(formatStr);
String reTime = format.format(date);
return reTime;
}
/**
将时间格式化,以字符串形式返回
* */
public static Date changeStringToDate(String date,String formatStr) throws ParseException{
DateFormat format = new SimpleDateFormat(formatStr);
Date result = null;
result = (Date)format.parse(date);
return result;
}
/**当前时间延迟 n 天数
* @param day
* @return
*/
public static Date delayDay(int day){
Calendar curr = Calendar.getInstance();
curr.set(Calendar.DAY_OF_MONTH,curr.get(Calendar.DAY_OF_MONTH)+day);
Date date=curr.getTime();
return date;
}
/**当前时间延迟 n 小时
* @param day
* @return
*/
public static Date delayHour(Date d,int hour){
Calendar curr = Calendar.getInstance();
curr.setTime(d);
curr.set(Calendar.HOUR_OF_DAY,curr.get(Calendar.HOUR_OF_DAY)+hour);
Date date=curr.getTime();
return date;
}
/**当前时间延迟 n 分钟
* @param day
* @return
*/
public static Date delayMinute(Date d,int minute){
Calendar curr = Calendar.getInstance();
curr.add(Calendar.MINUTE, minute);
Date date=curr.getTime();
return date;
}
/**当前时间延迟 n 月
* @param month,延迟月数,负数表示提前
* @return
*/
public static Date delayMonth(int month){
Calendar curr = Calendar.getInstance();
curr.set(Calendar.MONTH,curr.get(Calendar.MONTH)+month);
Date date=curr.getTime();
return date;
}
/**当前时间延迟 n 年
* @param day
* @return
*/
public static Date delayYear(int year){
Calendar curr = Calendar.getInstance();
curr.set(Calendar.YEAR,curr.get(Calendar.YEAR)+year);
Date date=curr.getTime();
return date;
}
/**取前几年的列表 数字-文字
* @param date 时间
* @param pre 前几年 数字
* @return
*/
public static Map<Integer,String> getPrevYear(Date date,int pre){
Map<Integer,String> map = new LinkedHashMap<Integer, String>();
try {
String yearStr = changeDateToString(date, DateUtil.year);
int year = Integer.parseInt(yearStr);
for(int y=year;y>=(year-pre);y--){
map.put(y, y+"年");
}
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
return map;
}
/**得到12个月的map
* @return
*/
public static Map<String,String> getMonthMap(){
Map<String,String> map = new LinkedHashMap<String, String>();
for(int i=1;i<=12;i++){
if(i<10)
map.put("0"+i, i+"月");
else
map.put(""+i, i+"月");
}
return map;
}
/**
* 得到指定月第一天String 格式MM/dd/yyyy
* @return
*/
public static String getMonthFirstDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
return changeDateToString(calendar.getTime(),"MM/dd/yyyy");
}
/**
* 得到指定月最后一天String 格式MM/dd/yyyy
* @return
*/
public static String getMonthLastDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar
.getActualMaximum(Calendar.DAY_OF_MONTH));
return changeDateToString( calendar.getTime(),"MM/dd/yyyy");
}
/**比较两个时间的大小
* @param date1 时间1
* @param date2 时间2
* @return 1:date1>date2;-1:date1<date2;0:date1=date2
*/
public static int compare_date(String date1,String date2){
try {
Date d1 = changeStringToDate(date1,hour);
Date d2 = changeStringToDate(date2,hour);
if (d1.getTime() > d2.getTime()){
return 1;
}else if (d1.getTime() < d2.getTime()){
return -1;
}else{
return 0;
}
}catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}//end function
/**比较两个时间的大小,精确到分钟
* @param date1 时间1
* @param date2 时间2
* @return 1:date1>date2;-1:date1<date2;0:date1=date2
*/
public static int compare_date_min(String date1,String date2){
try {
Date d1 = changeStringToDate(date1,min);
Date d2 = changeStringToDate(date2,min);
if (d1.getTime() > d2.getTime()){
return 1;
}else if (d1.getTime() < d2.getTime()){
return -1;
}else{
return 0;
}
}catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}//end function
/**两个时间相减,精确到秒
* @param date1 时间1
* @param date2 时间2
* @return date1-date2的绝对值(毫秒) 异常为-1
*/
public static int compare_date_second(String date1,String date2){
Date d1 = null;
Date d2 = null;
try {
d1 = changeStringToDate(date1,second);
d2 = changeStringToDate(date2,second);
return Math.abs((int) (d1.getTime() - d2.getTime()));
}catch (Exception exception) {
exception.printStackTrace();
return -1;
}
}//end function
/**
* desc:Date转换为String
*
* @param date
* 需要转换的date
* @param format
* 格式字符串
* @return 返回按照格式转化后的字符串 DateUtil.toString(new Date(),"yyyy-MM-dd HH:mm:ss SSS")
*/
public static String toString(Date date, String format) {
if (date != null) {
SimpleDateFormat dateformatter = new SimpleDateFormat(format);
String dateString = dateformatter.format(date);
return dateString;
} else {
return null;
}
}
/**
* 判断时间格式 格式必须为“yyyy-MM”
* 2004-2 是无效的
* 2003-2-29 是无效的
* @param sDate
* @param dateType 时间格式“yyyy-MM” 、“yyyy-MM-dd”
* @return
*/
public static boolean isValidDate(String str,String dateType) {
//String str = "2017-01";
DateFormat formatter = new SimpleDateFormat(dateType);
try{
Date date = (Date)formatter.parse(str);
return str.equals(formatter.format(date));
}catch(Exception e){
return false;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
大四毕业设计 oa 系统.zip (152个子文件)
amazeui.min.css 249KB
bootstrap.min.css 107KB
app.css 47KB
font-awesome.min.css 20KB
bootstrap-social.css 19KB
bootstrap-theme.min.css 18KB
fullcalendar.min.css 15KB
templatemo_style.css 9KB
amazeui.datatables.min.css 9KB
fullcalendar.print.css 5KB
admin.css 5KB
supersized.css 2KB
fontawesome-webfont.eot 75KB
fontawesome-webfont.eot 71KB
progress.gif 3KB
.gitignore 295B
tables.html 54KB
form.html 34KB
index.html 29KB
table-list-img.html 27KB
table-list.html 26KB
calendar.html 20KB
permissionConfiguration.html 18KB
chart.html 17KB
userInfo.html 16KB
404.html 15KB
head.html 7KB
register.html 5KB
payment-form.html 5KB
login.html 4KB
contact-form-1.html 4KB
contact-form-2.html 4KB
shiroindex.html 3KB
index.html 3KB
leftmenu.html 3KB
sign-up.html 3KB
login-2.html 3KB
login-1.html 3KB
login.html 3KB
forgot-password.html 2KB
inline-login.html 1KB
list.html 990B
view.html 876B
form.html 766B
DateUtil.java 7KB
StringUtil.java 6KB
User.java 5KB
IndexController.java 4KB
ShiroConfiguration.java 4KB
MShiroFilterFactoryBean.java 4KB
MyShiroRealm.java 3KB
SysPermission.java 3KB
UserController.java 2KB
SysRole.java 2KB
UserServiceImpl.java 2KB
UserDaoTest.java 2KB
BasePageQuery.java 2KB
PageDTO.java 1KB
MyWebConfig.java 1KB
HelloController.java 1KB
ResponseResult.java 1KB
PageVO.java 1KB
UserInfoController.java 983B
UserService.java 942B
PageUtil.java 853B
Main.java 747B
SysPermissionDaoTest.java 618B
SysRoleDaoTest.java 567B
MD5Util.java 508B
UserDao.java 482B
UserPageQuery.java 445B
OaApplication.java 389B
SysPermissionDao.java 380B
SysRoleDao.java 359B
OaApplicationTests.java 267B
k.jpg 3.31MB
templatemo-bg-2.jpg 343KB
templatemo-bg-1.jpg 87KB
1.jpg 70KB
2.jpg 67KB
3.jpg 52KB
cvv2.jpg 2KB
echarts.min.js 527KB
jquery.jqGrid.min.js 214KB
amazeui.min.js 206KB
moment.js 137KB
fullcalendar.min.js 122KB
jquery-1.11.1.min.js 94KB
jquery-1.8.2.min.js 91KB
amazeui.datatables.min.js 85KB
jquery.min.js 82KB
jquery-1.4.2.min.js 70KB
bootstrap.min.js 31KB
supersized.3.2.7.min.js 18KB
app.js 11KB
dataTables.responsive.min.js 11KB
userPsermission.js 3KB
userPsermission.js 2KB
supersized-init.js 2KB
scripts.js 1020B
共 152 条
- 1
- 2
资源评论
马coder
- 粉丝: 1200
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功