Java 学习了一段时间后,就习惯了在实例化一个类后,喜欢调用该对象的get或者set方法. 在一次学习中接触了Date类,这时发现 get和set方法有时不是那么好用的.
下面重演我学习过程中出现的错误,及解决的办法:
在学习Date类时,习惯性的用get方法调用Date()的年月日,发现不怎么好用了,
Date date=newDate();
Stringyear=date.getYear();
很明显在getYear()上有一条删除线,而且在myeclipse 中还报错,点击错误
Multiplemarkers at this line
- The method getYear() from thetype Date is deprecated,原来是这个方法被弃用了.
尝试了其他的get方法如: getDate()getDay()getHours()getMinutes()getMonth()getSeconds()等好几个get方法以及对应的set方法都弃用了,那在myeclipse中不能用这些方法,我怎么用Date()这个类呢.
后来通过网上搜找,终于找到了解决的办法:
java.text.SimpleDateFormat这是专门设置Date内容显示格式的类.
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 类型输出,就会打印出常见格式的日期了: 2014-08-14 19:48:13
如果仅仅想要获得年,可以将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 |
10 |
F |
月份中的星期 |
Number |
2 |
E |
星期中的天数 |
Text |
Tuesday; Tue |
a |
Am/pm 标记 |
Text |
PM |
H |
一天中的小时数(0-23) |
Number |
0 |
k |
一天中的小时数(1-24) |
Number |
24 |
K |
am/pm 中的小时数(0-11) |
Number |
0 |
h |
am/pm 中的小时数(1-12) |
Number |
12 |
m |
小时中的分钟数 |
Number |
30 |
s |
分钟中的秒数 |
Number |
55 |
S |
毫秒数 |
Number |
978 |
z |
时区 |
General time zone |
Pacific Standard Time; PST; GMT-08:00 |
Z |
时区 |
RFC 822 time zone |
-0800 |
知道了通过SimpleDateFormat格式化日期的方法,就再也不怕日期不好获得了。
在使用Date类 和 SimpleDateFormat类时只用到了一些常用的方法,其他方法可以自己尝试,毕竟自己学会的才真正是自己的.