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;
}
17、Date1.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;
}
}