今天有一个任务,判断现在的时间是否在某一个时间段内
遇到的第一个问题
Date类获取日期时间大的方法失效了
问题描述:
在学习Date类时,习惯性的用get方法调用Date()的年月日,发现不怎么好用了,
Date date=newDate();
Stringyear=date.getYear();
尝试了其他的get方法如: getDate()getDay()getHours()getMinutes()getMonth()getSeconds() 等好几个get方法以及对应的set方法都弃用了,那在myeclipse中不能用这些方法,
解决办法:
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String time=sdf.format(date);
System.out.println(time);
通过date对象获取到当前的时间, 然后再实例化SimpleDateFormat类时,为其设置日期显示格式"yyyy-MM-dd HH:mm:ss" ,通过第三句代码,将date对象格式化并转化为String 类型输出,就会打印出常见格式的日期了: 2018-9-25 12-12-12
如果仅仅想要获得年,可以将SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 中的"yyyy-MM-dd HH:mm:ss" 改为”yyyy”,这样得到的就只是年了.
其他的获得月、日、周、小时、分钟等的格式与年的相似,并且可以相互组合使用。
- 字母与代表的意思如下表内容所示。
| 字母 | 日期或时间元素 | 表示 | 示例 |
|---|---|---|---|
| G | 是Era 标识符 | Text | AD |
| y | 年 | Year | 1996; 96 |
| M | 月份 | Month | July; Jul: 07 |
| w | 年中的周数 | Number | 27 |
| W | 月份中的周数 | Number | 2 |
| D | 年中的天数 | Number | 189 |
| d | 月份中的天数 | Number | 12 |
| F | 月份中的星期 | Number | 1 |
| E | 星期中的天数 | Text | Tuesday;Tue |
| a | Am/Pm 标记 | Text | PM |
| H | 一天中的小时数 (0-23 ) | Number | 0 |
| k | 一天中的小时数 (1-24) | Number | 1 |
| K | am/pm 中的小时数(0-11) | Number | 1 |
| h | am/pm中的小时数(1-12) | Number | 12 |
| m | 小时中的分钟数 | Number | 30 |
| s | 分钟中的秒数 | Number | 50 |
| S | 毫秒数 | Number | 978 |
| z | 时区 | General time zone | PacificStandard Time; PST: GMT - 08:00 |
| Z | 时区 | RFC822 time zone | -0800 |
如果想要了解更多的格式化日期方法,可以去查看API文档
获取次日的时间
度娘给的答案:
- 获取系统前一天日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime();
return date;
}
- 获取系统当前日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 0);
date = calendar.getTime();
return date;
}
- 获取系统下一天日期
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime();
return date;
}
最后一个问题
如何判断一个时间在一个时间段内
/**
* Description: 判断一个时间是否在一个时间段内 </br>
*
* @param nowTime 当前时间 </br>
* @param beginTime 开始时间 </br>
* @param endTime 结束时间 </br>
*/
private boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
Calendar end = Calendar.getInstance();
end.setTime(endTime);
return date.after(begin) && date.before(end);
}
}
posted on
浙公网安备 33010602011771号