java中自己用到的一些时间处理类

来源:互联网 发布:如何使用大数据 编辑:程序博客网 时间:2024/05/22 00:13

1、获取当前时间DateUtil.getCurrentTime();

 

2

String gTime = newSimpleDateFormat("HH:mm:ss").format(new Date(Long.valueOf(time)));

Date ftime = newSimpleDateFormat("HH:mm:ss").parse(gTime);

3、判断指定时间是否在当前时间之后

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

sdf.parse(applyDTO.getJssj()).after(new Date())   返回true

 

 

 

1 根据开始和结束时间获取本周每一天的日期集合(比如开始时间2017-02-08周三 结束时间2017-02-09周四 最后返回值为    [null,null,2017-02-08,2017-02-09,null,null,null,]对应周一到周日,没有为null

publicList<String> getThisWeek(String startTime,String endTime) throwsParseException{

//时间处理

DateFormatdf = new SimpleDateFormat("yyyy-MM-dd");

Calendarcalendar = Calendar.getInstance();

intday = 0;

DatestartDate = df.parse(startTime);

DateendDate = df.parse(endTime);

DatestartDateCopy = startDate;

DateendDateCopy = endDate;

 

//开始结束时间不足一周的,补足一周

calendar.setTime(startDate);

intstartNumber = calendar.get(Calendar.DAY_OF_WEEK);

if(startNumber!=2){

day= calendar.get(Calendar.DATE);

if(startNumber!=1){

calendar.set(Calendar.DATE,day-(startNumber-2));

}else{

calendar.set(Calendar.DATE,day-6);

}

startDate= calendar.getTime();

}

calendar.setTime(endDate);

intendNumber = calendar.get(Calendar.DAY_OF_WEEK);

if(endNumber!=1){

day= calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE,day+(8-endNumber));

endDate= calendar.getTime();

}

 

//获取周一的前一天

calendar.setTime(startDate);

day= calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE,day - 1);

DateupDate = calendar.getTime();

//获取周日的后一天

calendar.setTime(endDate);

day= calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE,day + 1);

DatedownDate = calendar.getTime();

//循环获取本周日期,被补足的时间应该为空

calendar.setTime(upDate);

day= calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE,day + 1);

Datetime = calendar.getTime();

List<String>dateList = new ArrayList<String>();

while(time.before(downDate)) {

if(time.before(startDateCopy)||time.after(endDateCopy)){

dateList.add(null);

}else{

dateList.add(df.format(time));

}

day= calendar.get(Calendar.DATE);

calendar.set(Calendar.DATE,day + 1);

time= calendar.getTime();

}

returndateList;

}

 

2、根据一个时间获取该周周一和周日日期

SimpleDateFormatsdf=new SimpleDateFormat("yyyy-MM-dd",Locale.CHINA);

if(StringUtils.isEmpty(startTime)){

startTime= sdf.format(new Date());

}

Map<String,String>param = new HashMap<String, String>();

//根据传过来的日期或者今天时间获得每周的开始时间和结束时间

Calendar  cal=Calendar.getInstance();

cal.setTime(sdf.parse(startTime));

cal.setFirstDayOfWeek(Calendar.MONDAY);//设定一周的起始日

cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);

Stringkssj=sdf.format(cal.getTime());//当前周的周一日期

cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

Stringjssj=sdf.format(cal.getTime());//当前周的周日日期

param.put("userId",SecurityFacade.getCurUserId());

param.put("startTime",kssj);

param.put("overTime",jssj);

 

 

4、判断两个日期那个在前,哪个在后

nowDate.before(checkDate)

/**

 * 判断指定时间与当期日期的先后关系

 * 返回true表示在当前日期之前

 * @throws ParseException

 */

publicboolean checkTime(String time) throws ParseException{

DateFormatdf = new SimpleDateFormat("yyyy-MM-dd");

DatecheckDate = df.parse(time);

DatenowDate = new Date();

if(nowDate.before(checkDate)){

returnfalse;

}else{

returntrue;

}

}

 

7、获取当前时间

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");

 

String a = df.format(new Date());//将当前时间转换为模板样式的时间

df.parse(String)//将时间转换成为日期

 

SimpleDateFormatsdf=new SimpleDateFormat("yyyy-MM-dd",Locale.CHINA);

Stringtime = get(request, "time");

if(StringUtils.isEmpty(time)){

time= sdf.format(new Date());

}

 

8、获取时间:

前台(页面和js)获取当前时间禁止使用var now = new Date();当前时间一律取后台服务器时间

9、时间显示多.0

数据库datetime类型,获取到的时候前台显示后面

会多个2016-11-28 17:45.35.0,这个时候在该接收的DTO

get方法里面添加下面语句,进行截取

if(inspectRecordDate.length()> 18){

returninspectRecordDate.substring(0, 19);

}else{

returninspectRecordDate;

}

 

12、根据开始时间和结束时间返回时间段内的时间集合

/**

*

*@param beginDate

*@param endDate

*@return List

*@throws ParseException

*/

privateList<String> getDatesBetweenTwoDate1(String beginDate, String endDate)throws ParseException {

List<String>lDate = new ArrayList<String>();

lDate.add(beginDate);

SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd");

Calendarcal = Calendar.getInstance();

Datestart = sdf.parse(beginDate);

Dateend = sdf.parse(endDate);

cal.setTime(start);

booleanbContinue = true;

while(bContinue) {

cal.add(Calendar.DAY_OF_MONTH,1);

if(end.after(cal.getTime())) {

lDate.add(sdf.format(cal.getTime()));

} else{

break;

}

}

if(!beginDate.equals(endDate)){

lDate.add(endDate);

}

returnlDate;

}

13、获取当前日期的下一天

publicString getNextDate(String dateStr){

SimpleDateFormatdf = new SimpleDateFormat("yyyy-MM-dd");

Stringstr = "";        

try {

Datedate = df.parse(dateStr);

Calendarcalendar = new GregorianCalendar();

calendar.setTime(date);

calendar.add(calendar.DATE,1);

date= calendar.getTime();

str =df.format(date);

} catch(ParseException e) {

e.printStackTrace();

}

returnstr;

}

/**

 14计算两个日期之间相差的天数

 *

 * @param begindate

 *           较小的时间

 * @param enddate

 *           较大的时间

 * @return 相差天数

 * @throws Exception

 */

publicint daysBetween(String begindate, String enddate) throws Exception {

 

SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Datesmdate = sdf.parse(begindate);

Datebdate = sdf.parse(enddate);

Calendarcal = Calendar.getInstance();

cal.setTime(smdate);

longtime1 = cal.getTimeInMillis();

cal.setTime(bdate);

longtime2 = cal.getTimeInMillis() + 1000;

longbetween_days = (time2 - time1) / (1000 * 3600 * 24);

 

returnInteger.parseInt(String.valueOf(between_days));

 

}

 

/**

 15计算两个日期之间相差的秒数

 *

 * @param kssj

 *           较小的时间

 * @param jssj

 *           较大的时间

 * @return 相差秒数

 * @throws Exception

 */

publiclong secondsBetween(String kssj, String jssj) throws Exception {

 

SimpleDateFormatsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Datesmdate = sdf.parse(kssj);

Datebdate = sdf.parse(jssj);

Calendarcal = Calendar.getInstance();

cal.setTime(smdate);

longtime1 = cal.getTimeInMillis();

cal.setTime(bdate);

longtime2 = cal.getTimeInMillis() + 1000;

 

return(time2 - time1);

 

}

 

16、计算当前日期是周几

public static int dayForWeek(String pTime) throws Exception {  

 format = new SimpleDateFormat("yyyy-MM-dd");  

 Calendar c = Calendar.getInstance();  

 c.setTime(format.parse(pTime));  

 int dayForWeek = 0;  

 if(c.get(Calendar.DAY_OF_WEEK) == 1){  

  dayForWeek = 7;  

 }else{  

  dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;  

 }  

 return dayForWeek;  

}

17Date1.before(Date2)    Date1.after(Date2),

Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时,返回false; 

 

Date1.before(Date2),当Date1小于Date2时,返回TRUE,当大于等于时,返回false; 

 

如果业务数据存在相等的时候,而且相等时也需要做相应的业务判断或处理时,请注意。 

 

如果有这样的需求,在某个日期内的业务check,那么你需要使用:!Date1.after(Date2)

 

18判断time是否在from,to之内

/**

     * 判断time是否在from,to之内

     * 判断某个时间是否是在条件的起始时间与结束时间之内

     * @param time 指定日期

     * @param from 开始日期

     * @param to   结束日期

     * @return

     */

 public boolean belongCalendar(Date time, Datefrom, Date to) {

        Calendar date = Calendar.getInstance();

        date.setTime(time);

 

        Calendar after =Calendar.getInstance();

        after.setTime(from);

 

        Calendar before =Calendar.getInstance();

        before.setTime(to);

 

        if (date.after(after) &&date.before(before)) {

            return true;

        } else {

            return false;

        }  

    }

原创粉丝点击