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 标志符 | AD | |
y | 年 | 1996; 96 | |
M | 年中的月份 | July; Jul; 07 | |
w | 年中的周数 | 27 | |
W | 月份中的周数 | 2 | |
D | 年中的天数 | 189 | |
d | 月份中的天数 | 10 | |
F | 月份中的星期 | 2 | |
E | 星期中的天数 | Tuesday; Tue | |
a | Am/pm 标记 | PM | |
H | 一天中的小时数(0-23) | 0 | |
k | 一天中的小时数(1-24) | 24 | |
K | am/pm 中的小时数(0-11) | 0 | |
h | am/pm 中的小时数(1-12) | 12 | |
m | 小时中的分钟数 | 30 | |
s | 分钟中的秒数 | 55 | |
S | 毫秒数 | 978 | |
z | 时区 | Pacific Standard Time; PST; GMT-08:00 | |
Z | 时区 | -0800 |
知道了通过SimpleDateFormat格式化日期的方法,就再也不怕日期不好获得了。
在使用Date类 和 SimpleDateFormat类时只用到了一些常用的方法,其他方法可以自己尝试,毕竟自己学会的才真正是自己的.