日期操作类
Date 类与 long 数据类型的转换
SimpleDateFormat 类的使用
Calendar 类的使用
如果要想取得当前的日期时间,直接实例化 java.util.Date; 类即可取得
package cn.mysterious.study3; import java.util.Date; public class DateClass { public static void main(String[] args) { // TODO Auto-generated method stub Date date = new Date(); System.out.println(date); } } /* 结果: Tue Sep 05 23:23:11 CST 2017 */
虽然 Date 类的对象可以取得当前的日期时间,但是结果是这个日期时间的可读性不合适中国人
一直强调,日期时间 = long 数据内容。这一点在 Date 两类上有很好的体现
构造方法: public Date(long date)
将 Date 以 long 型返回: public long getTime()
范例:实现转换
package cn.mysterious.study3; import java.util.Date; public class DateClass { public static void main(String[] args) { // TODO Auto-generated method stub Date date = new Date(); // Date 类对象 long num = date.getTime(); // 将 Date 以 long 型返回 System.out.println(num); } }
在实际的使用过程之中,很少会出现这样的转换,但是至少你的头脑中应该清楚,long 和 Date 可以互相转换
日期格式化: SimpleDateFormat (核心,背)
Date 虽然可以直接进行日期时间的取得,但是大部分情况下这样的日期时间取得并不好用,因为它给出日期时间格式我们很多人看不懂
所以在java中考虑到了日期的显式格式要求。那么往往最终都会按照 String进行显式
如果要想实现这样的格式化操作,可以使用 java.text.SimpleDateFormat 类完成,在这个类有以下几个方法:
构造方法: public SimpleDateFormat(String pattern)
格式化标记:年(yyyy)月(MM)日(dd)时(HH)分(mm)秒(ss)毫秒(SS)
将日期格式化为字符串: public final String format(Date date)
将字符串变为日期时间: public Date parse(String source) throws ParseException
范例:就爱那个日期格式化为字符串
package cn.mysterious.study3; import java.text.SimpleDateFormat; import java.util.Date; public class DateClass { public static void main(String[] args) { // TODO Auto-generated method stub Date date = new Date(); // Date 类对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS"); String str = sdf.format(date); // 将日期格式化为字符串 System.out.println(str); } }
范例:将字符串变为日期时间
package cn.mysterious.study3; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateClass { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub String str = "1997-10-01 00:00:00.001"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS"); Date date = sdf.parse(str); // 将字符串变为日期 System.out.println(date); } }
总结:现在为止 String,基本类型,Date 已经实现了彻底的转换贯通
String 变为基本类型:包装类
基本类型变为 String : String vallueOf();
Date 与 String 转换: SimpleDateFormat
Calendar 类
Calendar 主要的功能是可以进行日期时间的拼凑使用。 Calendar 本身是一个抽象类
但是现在可以直接利用这个抽象类中提供的 static 方法进行实例化对象的取得:
public static Calendar getInstance()
随后可以利用 Calendar 类中的一个方法取得指定的日期时间数据:
public int get(int field)
但是在使用此方法的时候需要使用一些特定的常量
范例:取得当前的日期时间
package cn.mysterious.study3; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateClass { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Calendar cal = Calendar.getInstance(); // 取得 Calendar 类的实例化对象 StringBuffer buf = new StringBuffer(); buf.append(cal.get(Calendar.YEAR)).append("年"); buf.append(cal.get(Calendar.MONTH) + 1).append("月"); // 它是从0月开始计算的 所以+1 buf.append(cal.get(Calendar.DAY_OF_MONTH)).append("日"); buf.append(cal.get(Calendar.HOUR_OF_DAY)).append("时"); buf.append(cal.get(Calendar.MINUTE)).append("分"); buf.append(cal.get(Calendar.SECOND)).append("秒"); buf.append(cal.get(Calendar.MILLISECOND)).append("毫秒"); System.out.println(buf); } }
使用 Calendar 的好处是可以方便的计算出日期或时间之间的间隔
总结:
java.util.Date; 代表的就是日期时间
SimpleDateFormat 可以实现字符串与日期间的转换操作