- 浏览: 622602 次
- 性别:
- 来自: 郑州
-
文章分类
最新评论
-
AlanKay:
Mart_dai 写道Hi 齐晓威_518,我想问问,在exc ...
java 后台 Excel 文件生成后转化为字节流 -
18335864773:
国内的pageoffice插件也可以生成excel。也可以用流 ...
java 后台 Excel 文件生成后转化为字节流 -
JAVA_CLASSm:
你好,请问这个还有源码吗?我刚开始接触这个,想要源码学习一下. ...
同一账号不能多地登录(限制同一账号同一时刻只能一个用户登录使用,向QQ一样) -
pangjinquan:
...
前台JS获取后台的Json数据, 动态创建table并填充数据--转自一位朋友 -
lvjun106:
这是增加删除列,,,,
JQuery自动为表格增加一列
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 一个日期早于一个日期区间
*/
public static final int BEFORE_START_DATE = -2;
/**
* 一个日期等于一个日期区间的开始日期
*/
public static final int EQUAL_START_DATE = -1;
/**
* 一个日期在一个日期区间之内
*/
public static final int BETWEEN_TOW_DATE = 0;
/**
* 一个日期等于一个日期区间的结束日期
*/
public static final int EQUAL_END_DATE = 1;
/**
* 一个日期晚于一个日期区间
*/
public static final int AFTER_END_DATE = 2;
/**
* 三个日期相等
*/
public static final int TREE_DATE_EQUAL = 3;
/**
* 普通日期格式
*/
public static final String NORMAL_DATE_PATTERN = "yyyy-MM-dd";
public static final String ZHCN_DATE_PATTERN = "yyyy年MM月dd日";
public static final String ZHCN_DATE_TIME_PATTERN = "yyyy年MM月dd日 HH:mm:ss";
/**值班日期(白班)每天的起始时间点,或(晚班)的结束时间点*/
public static String dutyStartData=PropertiesBean.getProperty("DUTY_START_DATA","9:00:00");
/**值班日期(白班)每天的结束时间点,或(晚班)的起始时间点*/
public static String dutyEndData=PropertiesBean.getProperty("DUTY_END_DATA","18:30:00");
private DateUtils() {
}
/**
*
* @Description:判断<firstDate>时间点是否在<secondDate>时间点之前
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之前,则返回小于 0 的值
* @param firstDate
* @param secondDate
* @return
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:40:33
*/
public static boolean isBefore(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) < 0 ? true : false;
}
/**
*
* @Description:判断<firstDate>时间点是否在<secondDate>时间点之后
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之后,则返回大于 0 的值
* @param firstDate
* @param secondDate
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:38:48
*/
public static boolean isAfter(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) > 0 ? true : false;
}
/**
*
* @Description:比较两个时间点是否相等
* @param firstDate
* @param secondDate
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:37:30
*/
public static boolean isEqual(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) == 0 ? true : false;
}
/**
*
* @Description:比较两个时间点
* 如果secondDate表示的时间等于此 firstDate 表示的时间,则返回 0 值;
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之前,则返回小于 0 的值;
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之后,则返回大于 0 的值
* @param firstDate
* @param secondDate
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午08:34:33
*/
public static int compare(Date firstDate, Date secondDate) {
Calendar firstCalendar = null;
/**使用给定的 Date 设置此 Calendar 的时间。**/
if (firstDate != null) {
firstCalendar = Calendar.getInstance();
firstCalendar.setTime(firstDate);
}
Calendar secondCalendar = null;
/**使用给定的 Date 设置此 Calendar 的时间。**/
if (firstDate != null) {
secondCalendar = Calendar.getInstance();
secondCalendar.setTime(secondDate);
}
try {
/**
* 比较两个 Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。
* 如果参数表示的时间等于此 Calendar 表示的时间,则返回 0 值;
* 如果此 Calendar 的时间在参数表示的时间之前,则返回小于 0 的值;
* 如果此 Calendar 的时间在参数表示的时间之后,则返回大于 0 的值
* **/
return firstCalendar.compareTo(secondCalendar);
} catch (NullPointerException e) {
throw new IllegalArgumentException(e);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(e);
}
}
/**
*
* @Description:
* @param startDate
* @param endDate
* @param inDate
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午08:42:06
*/
public static int betweenTowDate(Date startDate, Date endDate, Date inDate) {
/**
* 判断<endDate>时间点是否在<startDate>时间点之前
* 如果为真表示<endDate>时间点在<startDate>时间点之前则抛出异常
* 即结束时间在开始时间之前是不正常的
*/
if (isBefore(endDate, startDate)) {
throw new IllegalArgumentException(
"endDate can not before startDate!");
}
/**
* 比较两个时间点<inDate>和<startDate>
* 如果inDate表示的时间等于此 startDate 表示的时间,则返回 0 值;
* 如果此 inDate 的时间在参数<startDate>表示的时间之前,则返回小于 0 的值;
* 如果此 inDate 的时间在参数<startDate>表示的时间之后,则返回大于 0 的值
*/
int sflag = compare(inDate,startDate);
/**
* 比较两个时间点<inDate>和<endDate>
* 如果inDate表示的时间等于此 endDate 表示的时间,则返回 0 值;
* 如果此 inDate 的时间在参数<endDate>表示的时间之前,则返回小于 0 的值;
* 如果此 inDate 的时间在参数<endDate>表示的时间之后,则返回大于 0 的值
*/
int eflag = compare(inDate,endDate);
int flag = 0;
/**如果此 inDate 的时间在参数<startDate>表示的时间之前,则返回小于 0 的值**/
if (sflag < 0){
/**一个日期早于一个日期区间**/
flag = DateUtils.BEFORE_START_DATE;
}else if (sflag == 0) { /**如果inDate表示的时间等于此 startDate 表示的时间,则返回 0 值;**/
/**如果inDate表示的时间等于此 endDate 表示的时间,则返回 0 值;**/
if (eflag == 0) {
/**三个日期相等**/
flag = DateUtils.TREE_DATE_EQUAL;
}else {
/**一个日期等于一个日期区间的开始日期**/
flag = DateUtils.EQUAL_START_DATE;
}
}else if (sflag > 0 && eflag < 0) {/**满足-inDate 的时间在参数<startDate>表示的时间之后,和 inDate 的时间在参数<endDate>表示的时间之前**/
/**一个日期在一个日期区间之内**/
flag = DateUtils.BETWEEN_TOW_DATE;
} else if (eflag == 0) {/**如果inDate表示的时间等于此 endDate 表示的时间**/
/**一个日期等于一个日期区间的结束日期**/
flag = DateUtils.EQUAL_END_DATE;
} else if (eflag > 0) {/**满足inDate 的时间在参数<endDate>表示的时间之后**/
/**一个日期晚于一个日期区间**/
flag = DateUtils.AFTER_END_DATE;
}
return flag;
}
/**
*
* @Description:分别判断当前日期是与一个日期区间的六种情况比较
* (1) 一个日期早于一个日期区间
* (2)三个日期相等
* (3)一个日期等于一个日期区间的开始日期
* (4)一个日期在一个日期区间之内
* (5)一个日期等于一个日期区间的结束日期
* (6)一个日期晚于一个日期区间
* @param startDate
* @param endDate
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午09:00:31
*/
public static int betweenTowDate(Date startDate, Date endDate) {
return betweenTowDate(startDate, endDate, new Date());
}
/**
* 将Date型转换为String型
*
* @param dtDate
* Date 要转换的时间
* @param strPattern
* String 转换的格式
* @return String 转换后的时间 说明:格式可以为 yyyy-MM-dd HH:mm:ss等,可任意组合,如 yyyy年MM月dd日
* yyyy代表年 MM代表月 dd代表日 HH hh kk代表小时 mm代表分钟 ss代表秒钟 format
*/
public static String dateToString(Date dtDate, String strPattern) {
SimpleDateFormat lsdfDate = new SimpleDateFormat(strPattern);
return lsdfDate.format(dtDate);
}
/**
*
* @Description:将符合相应格式的字符串转化为日期 <格式自定义>
* @param dateStr 日期字符串
* @param pattern 日期格式
* @ReturnType Date 日期字串为空或者不符合日期格式时返回null
* @author:
* @Created 2012 2012-9-20上午09:06:00
*/
public static Date getDate(String dateStr, String pattern) {
return getDate(dateStr, pattern, null);
}
/**
* 将符合相应格式的字符串转化为日期 格式自定义
*
* @param dateStr
* 日期字符串
* @param pattern
* 日期格式
* @param defaultDate
* 默认日期
* @return 日期字串为空或者不符合日期格式时返回defaultDate
*/
public static Date getDate(String dateStr, String pattern, Date defaultDate) {
if (dateStr != null && pattern != null) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
}
}
return defaultDate;
}
/**
*
* @Description:将某种日期转换成指定格式的日期数据 <获取相应格式的Date>
* @param date 需要格式的日期参数
* @param pattern 日期格式
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:08:24
*/
public static Date getFormatDate(Date date, String pattern) {
if (date == null) {
throw new IllegalArgumentException("date can not be null!");
}
if (pattern == null) {
pattern = NORMAL_DATE_PATTERN;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateStr = sdf.format(date);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
}
return date;
}
/**
*
* @Description:将符合相应格式的字符串转化为日期 格式 yyyy-MM-dd
* @param dateStr
* @return 日期字串为空或者不符合日期格式时返回null
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:04:28
*/
public static Date getDate(String dateStr) {
return getDate(dateStr, DateUtils.NORMAL_DATE_PATTERN);
}
/**
*
* @Description:将当前日期转换成字符串 格式 yyyy-MM-dd
* @ReturnType String
* @author:
* @Created 2012 2012-9-19下午05:54:42
*/
public static String datetoStr() {
SimpleDateFormat sdf = new SimpleDateFormat(NORMAL_DATE_PATTERN);
String curDate = sdf.format(new Date());
return curDate;
}
/**
*
* @Description: 获取当天日期,日期格式为YYYYMMDD
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午09:17:19
*/
public static String getIntraday() {
Calendar date = Calendar.getInstance();// 获得当前日期
int year = date.get(Calendar.YEAR);
int month = date.get(Calendar.MONTH) + 1;
int day = date.get(Calendar.DAY_OF_MONTH);
String updateFileDate = new String(new Integer(year).toString()
+ new Integer(month).toString() + new Integer(day).toString());
return updateFileDate;
}
/**
*
* @Description:获取当天日期,日期格式为YYYY-MM-DD HH:mm:ss
* @return
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:58:36
*/
public static Date getCurrentlyDate(){
Date currentDate=new Date();
return getFormatDate(currentDate,"yyyy-MM-dd HH:mm:ss");
}
/**
*
* @Description: 获取时间的小时数(24小时制)
* @param date
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-25下午08:33:44
*/
public static int getTime24Hour() {
Calendar calender = Calendar.getInstance();
calender.setTime(getCurrentlyDate());
return calender.get(Calendar.HOUR_OF_DAY);
}
/**
*
* @Description:获取前一日
* @param date
* @return
* @ReturnType Date
* @author:
* @Created 2012 2012-9-25下午08:32:00
*/
public static Date getBeforeDate(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
calender.add(calender.DATE, -1);
return calender.getTime();
}
/**
*
* @Description:取得当前日期的下一日
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午09:12:06
*/
public static String getTomorrowDate(){
Date myDate=new Date();
Calendar calender = Calendar.getInstance();
calender.setTime(myDate);
calender.add(calender.DATE,1);
return dateToString(calender.getTime(),"yyyy-MM-dd");
}
/**
*
* @Description:取当前日期后的第二日
* @return
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午10:37:47
*/
public static String getNextTomorrowDate(){
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate=new Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
mDate=formatter.format(myDate);
return mDate;
}
/**
*
* @Description:获取当前星期在当前月份中的第几个星期
* @param date
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-10-29上午11:45:13
*/
public static int getTimeWeekOfMonth(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
return calender.get(Calendar.WEEK_OF_MONTH);
}
/**
*
* 功能描述:获取时间在当前星期的第几天
*
* @author
* <p>创建日期 :2012 2012-10-29上午11:45:52</p>
*
* @param date
* @return 返回星期数,其中: 1表示星期一, ...7表示星期天
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static int getTimeDateOfWeek(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
int week = calender.get(Calendar.DAY_OF_WEEK) - 1;
if(week == 0)
week = 7;
return week;
}
/**
*
* 功能描述:获取时间在当前星期的第几天
*
* @author
* <p>创建日期 :2012 2012-10-29上午11:45:52</p>
*
* @param date
* @return 返回星期数,其中: 7表示星期六..1表示星期天
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static int getQuartzTimeDateOfWeek(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
int week = calender.get(Calendar.DAY_OF_WEEK);
return week;
}
/**
*
* @Description:某个时间与当前时间进行求差
* @param date
* @return
* @ReturnType long
* @author:
* @Created 2012 2012-12-12下午01:00:53
*/
public static long getAppointTimeDifference(Date startDate,Date endDate){
long l=endDate.getTime()-startDate.getTime();
long day=l/(24*60*60*1000);
return day;
}
/**
*
* @Description:某个时间与当前时间进行求差
* @param date
* @return
* @ReturnType long
* @author:
* @Created 2012 2012-12-12下午01:00:53
*/
public static long getTimeDifference(Date date){
/**获取当前系统时间**/
java.util.Date currentlyDate=DateUtils.getCurrentlyDate();
long l=date.getTime()-currentlyDate.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
return day;
}
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now;
try {
now = df.parse("2012-12-10 13:31:34");
java.util.Date date=DateUtils.getCurrentlyDate();
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @Description:获取时间的分数
* @param date
* @ReturnType int
* @author:
* @Created 2012 2012-10-29上午11:45:13
*/
public static int getTimeMinute(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
return calender.get(Calendar.MINUTE);
}
/**
* 给出时间分格式转换时间单位
* @param time String ; 12:20:30
* @return String ;12h20m30s
*/
public static String getTimeUnit(String time){
time = time.replaceFirst(":", "h");
time = time.replaceFirst(":", "m")+"s";
return time;
}
/**
* 根据当前日期及增加天数得到相应日期
* @param s
* @param n
* @return
* @throws Exception
*/
public static String addDay(String s,int n) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cd = Calendar.getInstance();
try{
cd.setTime(sdf.parse(s));
cd.add(Calendar.DATE, n);
}catch(Exception e){}
return sdf.format(cd.getTime());
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 一个日期早于一个日期区间
*/
public static final int BEFORE_START_DATE = -2;
/**
* 一个日期等于一个日期区间的开始日期
*/
public static final int EQUAL_START_DATE = -1;
/**
* 一个日期在一个日期区间之内
*/
public static final int BETWEEN_TOW_DATE = 0;
/**
* 一个日期等于一个日期区间的结束日期
*/
public static final int EQUAL_END_DATE = 1;
/**
* 一个日期晚于一个日期区间
*/
public static final int AFTER_END_DATE = 2;
/**
* 三个日期相等
*/
public static final int TREE_DATE_EQUAL = 3;
/**
* 普通日期格式
*/
public static final String NORMAL_DATE_PATTERN = "yyyy-MM-dd";
public static final String ZHCN_DATE_PATTERN = "yyyy年MM月dd日";
public static final String ZHCN_DATE_TIME_PATTERN = "yyyy年MM月dd日 HH:mm:ss";
/**值班日期(白班)每天的起始时间点,或(晚班)的结束时间点*/
public static String dutyStartData=PropertiesBean.getProperty("DUTY_START_DATA","9:00:00");
/**值班日期(白班)每天的结束时间点,或(晚班)的起始时间点*/
public static String dutyEndData=PropertiesBean.getProperty("DUTY_END_DATA","18:30:00");
private DateUtils() {
}
/**
*
* @Description:判断<firstDate>时间点是否在<secondDate>时间点之前
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之前,则返回小于 0 的值
* @param firstDate
* @param secondDate
* @return
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:40:33
*/
public static boolean isBefore(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) < 0 ? true : false;
}
/**
*
* @Description:判断<firstDate>时间点是否在<secondDate>时间点之后
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之后,则返回大于 0 的值
* @param firstDate
* @param secondDate
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:38:48
*/
public static boolean isAfter(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) > 0 ? true : false;
}
/**
*
* @Description:比较两个时间点是否相等
* @param firstDate
* @param secondDate
* @ReturnType boolean
* @author:
* @Created 2012 2012-9-20上午08:37:30
*/
public static boolean isEqual(Date firstDate, Date secondDate) {
return compare(firstDate, secondDate) == 0 ? true : false;
}
/**
*
* @Description:比较两个时间点
* 如果secondDate表示的时间等于此 firstDate 表示的时间,则返回 0 值;
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之前,则返回小于 0 的值;
* 如果此 firstDate 的时间在参数<secondDate>表示的时间之后,则返回大于 0 的值
* @param firstDate
* @param secondDate
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午08:34:33
*/
public static int compare(Date firstDate, Date secondDate) {
Calendar firstCalendar = null;
/**使用给定的 Date 设置此 Calendar 的时间。**/
if (firstDate != null) {
firstCalendar = Calendar.getInstance();
firstCalendar.setTime(firstDate);
}
Calendar secondCalendar = null;
/**使用给定的 Date 设置此 Calendar 的时间。**/
if (firstDate != null) {
secondCalendar = Calendar.getInstance();
secondCalendar.setTime(secondDate);
}
try {
/**
* 比较两个 Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。
* 如果参数表示的时间等于此 Calendar 表示的时间,则返回 0 值;
* 如果此 Calendar 的时间在参数表示的时间之前,则返回小于 0 的值;
* 如果此 Calendar 的时间在参数表示的时间之后,则返回大于 0 的值
* **/
return firstCalendar.compareTo(secondCalendar);
} catch (NullPointerException e) {
throw new IllegalArgumentException(e);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(e);
}
}
/**
*
* @Description:
* @param startDate
* @param endDate
* @param inDate
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午08:42:06
*/
public static int betweenTowDate(Date startDate, Date endDate, Date inDate) {
/**
* 判断<endDate>时间点是否在<startDate>时间点之前
* 如果为真表示<endDate>时间点在<startDate>时间点之前则抛出异常
* 即结束时间在开始时间之前是不正常的
*/
if (isBefore(endDate, startDate)) {
throw new IllegalArgumentException(
"endDate can not before startDate!");
}
/**
* 比较两个时间点<inDate>和<startDate>
* 如果inDate表示的时间等于此 startDate 表示的时间,则返回 0 值;
* 如果此 inDate 的时间在参数<startDate>表示的时间之前,则返回小于 0 的值;
* 如果此 inDate 的时间在参数<startDate>表示的时间之后,则返回大于 0 的值
*/
int sflag = compare(inDate,startDate);
/**
* 比较两个时间点<inDate>和<endDate>
* 如果inDate表示的时间等于此 endDate 表示的时间,则返回 0 值;
* 如果此 inDate 的时间在参数<endDate>表示的时间之前,则返回小于 0 的值;
* 如果此 inDate 的时间在参数<endDate>表示的时间之后,则返回大于 0 的值
*/
int eflag = compare(inDate,endDate);
int flag = 0;
/**如果此 inDate 的时间在参数<startDate>表示的时间之前,则返回小于 0 的值**/
if (sflag < 0){
/**一个日期早于一个日期区间**/
flag = DateUtils.BEFORE_START_DATE;
}else if (sflag == 0) { /**如果inDate表示的时间等于此 startDate 表示的时间,则返回 0 值;**/
/**如果inDate表示的时间等于此 endDate 表示的时间,则返回 0 值;**/
if (eflag == 0) {
/**三个日期相等**/
flag = DateUtils.TREE_DATE_EQUAL;
}else {
/**一个日期等于一个日期区间的开始日期**/
flag = DateUtils.EQUAL_START_DATE;
}
}else if (sflag > 0 && eflag < 0) {/**满足-inDate 的时间在参数<startDate>表示的时间之后,和 inDate 的时间在参数<endDate>表示的时间之前**/
/**一个日期在一个日期区间之内**/
flag = DateUtils.BETWEEN_TOW_DATE;
} else if (eflag == 0) {/**如果inDate表示的时间等于此 endDate 表示的时间**/
/**一个日期等于一个日期区间的结束日期**/
flag = DateUtils.EQUAL_END_DATE;
} else if (eflag > 0) {/**满足inDate 的时间在参数<endDate>表示的时间之后**/
/**一个日期晚于一个日期区间**/
flag = DateUtils.AFTER_END_DATE;
}
return flag;
}
/**
*
* @Description:分别判断当前日期是与一个日期区间的六种情况比较
* (1) 一个日期早于一个日期区间
* (2)三个日期相等
* (3)一个日期等于一个日期区间的开始日期
* (4)一个日期在一个日期区间之内
* (5)一个日期等于一个日期区间的结束日期
* (6)一个日期晚于一个日期区间
* @param startDate
* @param endDate
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-20上午09:00:31
*/
public static int betweenTowDate(Date startDate, Date endDate) {
return betweenTowDate(startDate, endDate, new Date());
}
/**
* 将Date型转换为String型
*
* @param dtDate
* Date 要转换的时间
* @param strPattern
* String 转换的格式
* @return String 转换后的时间 说明:格式可以为 yyyy-MM-dd HH:mm:ss等,可任意组合,如 yyyy年MM月dd日
* yyyy代表年 MM代表月 dd代表日 HH hh kk代表小时 mm代表分钟 ss代表秒钟 format
*/
public static String dateToString(Date dtDate, String strPattern) {
SimpleDateFormat lsdfDate = new SimpleDateFormat(strPattern);
return lsdfDate.format(dtDate);
}
/**
*
* @Description:将符合相应格式的字符串转化为日期 <格式自定义>
* @param dateStr 日期字符串
* @param pattern 日期格式
* @ReturnType Date 日期字串为空或者不符合日期格式时返回null
* @author:
* @Created 2012 2012-9-20上午09:06:00
*/
public static Date getDate(String dateStr, String pattern) {
return getDate(dateStr, pattern, null);
}
/**
* 将符合相应格式的字符串转化为日期 格式自定义
*
* @param dateStr
* 日期字符串
* @param pattern
* 日期格式
* @param defaultDate
* 默认日期
* @return 日期字串为空或者不符合日期格式时返回defaultDate
*/
public static Date getDate(String dateStr, String pattern, Date defaultDate) {
if (dateStr != null && pattern != null) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
}
}
return defaultDate;
}
/**
*
* @Description:将某种日期转换成指定格式的日期数据 <获取相应格式的Date>
* @param date 需要格式的日期参数
* @param pattern 日期格式
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:08:24
*/
public static Date getFormatDate(Date date, String pattern) {
if (date == null) {
throw new IllegalArgumentException("date can not be null!");
}
if (pattern == null) {
pattern = NORMAL_DATE_PATTERN;
}
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateStr = sdf.format(date);
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
}
return date;
}
/**
*
* @Description:将符合相应格式的字符串转化为日期 格式 yyyy-MM-dd
* @param dateStr
* @return 日期字串为空或者不符合日期格式时返回null
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:04:28
*/
public static Date getDate(String dateStr) {
return getDate(dateStr, DateUtils.NORMAL_DATE_PATTERN);
}
/**
*
* @Description:将当前日期转换成字符串 格式 yyyy-MM-dd
* @ReturnType String
* @author:
* @Created 2012 2012-9-19下午05:54:42
*/
public static String datetoStr() {
SimpleDateFormat sdf = new SimpleDateFormat(NORMAL_DATE_PATTERN);
String curDate = sdf.format(new Date());
return curDate;
}
/**
*
* @Description: 获取当天日期,日期格式为YYYYMMDD
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午09:17:19
*/
public static String getIntraday() {
Calendar date = Calendar.getInstance();// 获得当前日期
int year = date.get(Calendar.YEAR);
int month = date.get(Calendar.MONTH) + 1;
int day = date.get(Calendar.DAY_OF_MONTH);
String updateFileDate = new String(new Integer(year).toString()
+ new Integer(month).toString() + new Integer(day).toString());
return updateFileDate;
}
/**
*
* @Description:获取当天日期,日期格式为YYYY-MM-DD HH:mm:ss
* @return
* @ReturnType Date
* @author:
* @Created 2012 2012-9-20上午09:58:36
*/
public static Date getCurrentlyDate(){
Date currentDate=new Date();
return getFormatDate(currentDate,"yyyy-MM-dd HH:mm:ss");
}
/**
*
* @Description: 获取时间的小时数(24小时制)
* @param date
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-9-25下午08:33:44
*/
public static int getTime24Hour() {
Calendar calender = Calendar.getInstance();
calender.setTime(getCurrentlyDate());
return calender.get(Calendar.HOUR_OF_DAY);
}
/**
*
* @Description:获取前一日
* @param date
* @return
* @ReturnType Date
* @author:
* @Created 2012 2012-9-25下午08:32:00
*/
public static Date getBeforeDate(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
calender.add(calender.DATE, -1);
return calender.getTime();
}
/**
*
* @Description:取得当前日期的下一日
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午09:12:06
*/
public static String getTomorrowDate(){
Date myDate=new Date();
Calendar calender = Calendar.getInstance();
calender.setTime(myDate);
calender.add(calender.DATE,1);
return dateToString(calender.getTime(),"yyyy-MM-dd");
}
/**
*
* @Description:取当前日期后的第二日
* @return
* @ReturnType String
* @author:
* @Created 2012 2012-9-20上午10:37:47
*/
public static String getNextTomorrowDate(){
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate=new Date();
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
mDate=formatter.format(myDate);
return mDate;
}
/**
*
* @Description:获取当前星期在当前月份中的第几个星期
* @param date
* @return
* @ReturnType int
* @author:
* @Created 2012 2012-10-29上午11:45:13
*/
public static int getTimeWeekOfMonth(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
return calender.get(Calendar.WEEK_OF_MONTH);
}
/**
*
* 功能描述:获取时间在当前星期的第几天
*
* @author
* <p>创建日期 :2012 2012-10-29上午11:45:52</p>
*
* @param date
* @return 返回星期数,其中: 1表示星期一, ...7表示星期天
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static int getTimeDateOfWeek(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
int week = calender.get(Calendar.DAY_OF_WEEK) - 1;
if(week == 0)
week = 7;
return week;
}
/**
*
* 功能描述:获取时间在当前星期的第几天
*
* @author
* <p>创建日期 :2012 2012-10-29上午11:45:52</p>
*
* @param date
* @return 返回星期数,其中: 7表示星期六..1表示星期天
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static int getQuartzTimeDateOfWeek(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
int week = calender.get(Calendar.DAY_OF_WEEK);
return week;
}
/**
*
* @Description:某个时间与当前时间进行求差
* @param date
* @return
* @ReturnType long
* @author:
* @Created 2012 2012-12-12下午01:00:53
*/
public static long getAppointTimeDifference(Date startDate,Date endDate){
long l=endDate.getTime()-startDate.getTime();
long day=l/(24*60*60*1000);
return day;
}
/**
*
* @Description:某个时间与当前时间进行求差
* @param date
* @return
* @ReturnType long
* @author:
* @Created 2012 2012-12-12下午01:00:53
*/
public static long getTimeDifference(Date date){
/**获取当前系统时间**/
java.util.Date currentlyDate=DateUtils.getCurrentlyDate();
long l=date.getTime()-currentlyDate.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
return day;
}
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now;
try {
now = df.parse("2012-12-10 13:31:34");
java.util.Date date=DateUtils.getCurrentlyDate();
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
*
* @Description:获取时间的分数
* @param date
* @ReturnType int
* @author:
* @Created 2012 2012-10-29上午11:45:13
*/
public static int getTimeMinute(Date date) {
Calendar calender = Calendar.getInstance();
calender.setTime(date);
return calender.get(Calendar.MINUTE);
}
/**
* 给出时间分格式转换时间单位
* @param time String ; 12:20:30
* @return String ;12h20m30s
*/
public static String getTimeUnit(String time){
time = time.replaceFirst(":", "h");
time = time.replaceFirst(":", "m")+"s";
return time;
}
/**
* 根据当前日期及增加天数得到相应日期
* @param s
* @param n
* @return
* @throws Exception
*/
public static String addDay(String s,int n) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cd = Calendar.getInstance();
try{
cd.setTime(sdf.parse(s));
cd.add(Calendar.DATE, n);
}catch(Exception e){}
return sdf.format(cd.getTime());
}
}
发表评论
-
诊断Java代码中常见的数据库性能热点问题
2016-09-01 11:49 623当我在帮助一些开发 ... -
同一账号不能多地登录(限制同一账号同一时刻只能一个用户登录使用,向QQ一样)
2014-12-30 11:36 9251解决四个问题: 1. 实现 ... -
java 将汉字转换为全拼及返回中文的首字母-带JAR包
2014-12-22 15:59 944import net.sourceforge.pinyin4 ... -
JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题解决
2014-09-07 16:31 1229使用JSON,在SERVLET或者STRUTS的ACTION ... -
java 的 文件、文件夹 的建立、删除、复制以及移动等功能 操作
2014-08-23 09:00 770package util; import java. ... -
Java中sleep()与wait()的区别
2014-08-23 08:58 485一种解释: 功能差不 ... -
Java关键字final、static使用总结
2014-07-31 21:43 410一、final 根据程序上下文环境,Java关 ... -
Java 泛型 .
2014-07-02 23:17 753class Person{ private String n ... -
HashMap<String,HashMap<String,String>> 的多级映射 .
2014-07-02 23:13 1611package namespace;import java.u ... -
synchronized 和ThreadLocal 区别
2014-05-14 22:03 1170看了N个贴子,ThreadLocal讲得都不是很清楚,纠缠与 ... -
JAVA 常用加密方法
2014-05-10 18:45 10601.Base64 加密:org.apache.common ... -
Java二维数组的声明和初始化
2014-03-18 22:39 30521.二维数组可以看成以数组为元素的数组; 2.Java中二维数 ... -
POI操作Excel常用方法总结
2014-03-10 21:29 1007一、POI简介 Apache POI是Apac ... -
JAVA垃圾回收机制,如何优化程序
2014-02-12 12:15 1041虽然程序员无法控制JVM的垃圾回收机制。但是可以通过编程的手段 ... -
HTTPClient PostMethod 中文乱码问题解决方案(2种)
2014-02-20 21:28 2388不过在实际使用中, 还是发现按照最基本的方式调用 Http ... -
List,set,Map 的用法和区别
2014-02-09 15:23 862Collection├List│├LinkedList│├Ar ... -
Object转Map Map->list array->list list->Map
2013-12-18 21:31 695Map map1= new HashMap(); map ... -
java List 排序 Collections.sort() 对 List 排序
2013-12-19 22:20 912//一个POJO例子class User { String ... -
SSH框架中使用log4j的方便之处
2013-12-14 13:39 747SSH框架中使用log4j的方便之处 1. 动态的改变记 ... -
无序hashset与hashmap让其有序
2013-12-14 13:39 3420今天迭代hashmap时,hashmap并不能按照put的 ...
相关推荐
JUnit是Java中广泛使用的单元测试框架,它提供了断言、测试套件等功能,帮助开发者编写可测试的代码。 总之,Java工具类是提高开发效率的关键,它们封装了常见的操作,减少了代码重复,提高了代码可读性和维护性。...
Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...
- **String** 类在Java中是不可变的,这意味着一旦创建了String对象,就不能改变它的值。常用的方法包括 `concat()`、`substring()`、`indexOf()`、`replace()` 等。 - **StringBuffer/StringBuilder** 是可变的...
内容概要:本文提供了一个关于 Java 中日期操作的工具类详细说明及其实现,其中包括对日期进行增减、转换、时区设置以及计算间隔等多种常用功能的具体方法实现。它覆盖了如获取当前时间和日期、解析与格式化日期串到...
它是Java中最常用的访问修饰符之一。 - **static**:表示某个属性或方法属于类本身,而不是类的实例。静态方法或变量可以在没有创建对象的情况下直接通过类名调用。 - **void**:用于声明一个方法不返回任何值。例如...
在Java中,日期对象主要由`java.util.Date`类表示,而日期格式化则依赖于`java.text.SimpleDateFormat`类。`SimpleDateFormat`允许我们定义自定义的日期和时间模式,以便根据需要将日期转换为字符串或将字符串解析为...
这份资源包含了关于Java API的详细说明,可以帮助开发者快速查找和理解各种常用的接口、类和方法。下面,我们将深入探讨Java API中的关键部分,以及如何结合MySQL中文参考手册和HTTP 1.1的知识进行开发。 首先,...
1. **String类**:Java中的字符串是不可变对象,它在程序中扮演着重要角色。例如,`concat()`用于连接两个字符串,`substring()`截取字符串的一部分,`indexOf()`和`lastIndexOf()`查找子串位置,`replace()`替换...
以下是一些Java中常用的Util类及其重要知识点的详细说明: 1. **ArrayList和LinkedList**: 这两个都是`java.util`包下的List接口实现类。ArrayList基于动态数组,适合随机访问,插入和删除操作相对较慢;LinkedList...
在Java API文档中,我们可以找到关于Java语言的基本类、集合框架、网络编程、多线程、I/O流、反射、异常处理、国际化、日期时间、XML处理等多个领域的详细说明。以下是一些关键知识点的概述: 1. **基础类与接口**...
在Java中,`java.security`包下的`KeyPairGenerator`和`Cipher`类用于生成密钥对和实现加密解密操作。 3. **Cookie**: Cookie是HTTP协议中用于管理状态的一种机制。在Java中,`javax.servlet.http.Cookie`类代表一...
在Java中处理XML时,如果需要使用XPath表达式来查找或操作节点,Jaxen将提供便利。 5. **commons-pool.jar**:Apache Commons Pool是Apache软件基金会的一个项目,提供对象池化服务。对象池化能有效地管理资源,...
6. **system**:在Java中,通常指的是`System`类,包含了对系统级操作的静态方法,如标准输出`System.out.println()`。 7. **out**:`System.out`是`PrintStream`对象,用于向控制台输出信息。 8. **print**:`...
1. **字符串工具类**:在Java中,`java.lang.String`类提供了许多内置的方法来处理字符串,但有时我们还需要更高级的功能,这时可以使用`java.util.StringUtils`(来自Apache Commons Lang库)或者Google的Guava库中...
本文档详细介绍了Java中一些常用的函数,这些函数覆盖了日期格式转换、数学运算、十六进制显示、数据库操作及线程控制等多个方面,是Java开发者在日常编程工作中不可或缺的工具。 首先,日期格式转换函数dateToStr...
以下是一些在Java中常用的工具类及其功能详解: 1. **Base64**: Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Java中的`java.util.Base64`类提供了Base64编码和解码的功能,包括对字节数组、字符串...
以下是对Java常用API的一些详细说明: 1. **集合框架**: Java集合框架是Java API的核心部分,包括List、Set、Map接口以及实现它们的类,如ArrayList、LinkedList、HashSet、HashMap等。这些接口和类提供了存储和...
"Java学习中常用的帮助文档.zip"是一个集合了这些关键信息的压缩文件,方便Java初学者和有经验的开发者快速查阅,提高开发效率。 这个压缩包包含了一个名为“帮助文档”的文件,这很可能是一个HTML或PDF格式的Java ...
在Java编程语言中,工具类(Utility Class)是封装了常用功能的方法集合,方便开发者在项目中快速调用,提高代码复用性。以下是对给定的九个工具类的详细说明: 1. **FileUtils.java**: 文件操作工具类,提供了处理...
以下是一些常见的Java工具类及其功能的详细说明: 1. **String类**:Java内置的String类提供了大量操作字符串的方法,如concat、substring、indexOf、replace、trim等,帮助开发者高效地处理文本。 2. **Arrays类*...