今天有一个任务,判断现在的时间是否在某一个时间段内
遇到的第一个问题
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: 判断一个时间是否在一个时间段内
*
* @param nowTime 当前时间
* @param beginTime 开始时间
* @param endTime 结束时间
*/
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);
}
}