Date
在java的API中对Date的描述除了明确Date是用来表示日期的类以外,其他的什么诸如格林威治标准时什么闰秒对我们的开发并没有什么卵用。
在看一个类的时候肯定要先看构造函数了,但在这个Date中似乎API在JDK1.1之后就不怎么看重这个兄弟,而是在Date的API中处处贴着:已过时,请参考Calendar。但要注意的是,new Date();这条语句还是很有用途的。再看Date的方法,如果将过时的方法过滤掉,似乎就成了一个变形的Object类了,只不过比Object多了几个方法而已。
因此重点就是Calendar类了,看了API对Calendar的描述后,第一感觉就是这活脱脱就是一个信息俱全的日历,我们可以通过一些简单的方法就可以获取之前在使用Date并且需要很多逻辑计算才可以得到的数据信息了。
首先可以通过Calendar.getInstance();来获取一个Calendar实例,(单例)。
个人觉得Calendar的最重要的一个特点就是有很多很多的字段,这样可以获取诸如月数,各种指定的天数,等等等等之前让我们纠结的数据。
Calendar的方法中,对set提供了各种重载方法,使得我们在使用Calendar的时候可以自由的设定Calendar的当前时间。
其次可以通过get方法参数为各种字段名称来获取没有经过“加工”的原生态的数据。
如果想获取比较直观的数据,就需要使用另一个类DateFormat的实现类了,只有一个实现类SimpleDateFormat。
接下来就是重点了,SimpleDateFormat是一个友好的(与系统的语言环境关联的可以格式化以及解析日期的工具)。
在创建一个SimpleDateFormat的时候可以指定日期的格式
例如:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E ");
//yyyy(年份) MM(月份) dd(月份中的天数) HH(24小时制的时,hh为12小时制) mm(分钟数) ss(秒数) E(星期:符合系统语言环境的格式)
System.out.println(sdf.format(new Date());
//会打印出符合指定格式的日期的字符串 结果是 2015-05-27 18:24:16 星期三
String date = "2015-05-27 18:24:16 星期三";//一个符合创建的SimpleDateFormat的格式字符串
Date d = sdf.parse(date);
//可以通过parse将一个符合格式的字符串转换成Date对象
|
|