今天有一个任务,判断现在的时间是否在某一个时间段内
遇到的第一个问题
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);
}
}