Java中的日期和时间类以及Calendar类用法详解
Java日期和时间类简介 Date 类是 Java 中的日期时间类,其构造方法比较多,下面是常用的两个: 请看一个显示日期时间的例子: import java.util.Date; public class Demo{ public static void main(String args[]){ Date da=new Date(); //创建时间对象 System.out.println(da); //显示时间和日期 long msec=da.getTime(); System.out.println("从1970年1月1日0时到现在共有:" + msec + "毫秒"); } }
Mon Feb 05 22:50:05 CST 2007 从1970年1月1日0时到现在共有:1170687005390 毫秒 一些比较常用的 Date 类方法: Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。若需要修改时间显示的格式可以使用“SimpleDateFormat(String pattern)”方法。 例如,用不同的格式输出时间: import java.util.Date; import java.text.SimpleDateFormat; public class Demo{ public static void main(String args[]){ Date da=new Date(); System.out.println(da); SimpleDateFormat ma1=new SimpleDateFormat("yyyy 年 MM 月 dd 日 E 北京时间"); System.out.println(ma1.format(da)); SimpleDateFormat ma2=new SimpleDateFormat("北京时间:yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒"); System.out.println(ma2.format(-1000)); } } 运行结果: Sun Jan 04 17:31:36 CST 2015 2015 年 01 月 04 日 星期日 北京时间 北京时间:1970 年 01 月 01 日 07 时 59 分 59 秒
抽象类 Calendar 提供了一组方法,允许把以毫秒为单位的时间转换成一些有用的时间组成部分。Calendar 不能直接创建对象,但可以使用静态方法 getInstance() 获得代表当前日期的日历对象,如: Calendar calendar=Calendar.getInstance();
void set(int year,int month,int date); void set(int year,int date,int hour,int minute); void set(int year,int minute,int second);
int get(int field);
calendar.get(Calendar.MONTH);
由 Calendar 定义的一些常用方法如下表所示: GregorianCalendar 类 GregorianCalendar 是一个具体实现 Calendar 类的类,该类实现了公历日历。Calendar 类的 getInstance() 方法返回一个 GregorianCalendar,它被初始化为默认的地域和时区下的当前日期和时间。 GregorianCalendar 类定义了两个字段:AD 和 BC,分别代表公元前和公元后。其默认的构造方法 GregorianCalendar() 以默认的地域和时区的当前日期和时间初始化对象,另外也可以指定地域和时区来建立一个 GregorianCalendar 对象,例如: GregorianCalendar(Locale locale); GregorianCalendar(TimeZone timeZone); GregorianCalendar(TimeZone timeZone,Locale locale);
Boolean isLeapYear(int year);
Java Object类 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。例如: public class Demo{ // ... } 实际上是下面代码的简写形式: public class Demo extends Object{ // ... }
Object 类定义了一些有用的方法,由于是根类,这些方法在其他类中都存在,一般是进行了重载或覆盖,实现了各自的具体功能。 Object 类中的 equals() 方法用来检测一个对象是否等价于另外一个对象,语法为: public boolean equals(Object obj)
obj1.equals(obj2);
注意: 散列码(hashCode)是按照一定的算法由对象得到的一个数值,散列码没有规律。如果 x 和 y 是不同的对象,x.hashCode() 与 y.hashCode() 基本上不会相同。 hashCode() 方法主要用来在集合中实现快速查找等操作,也可以用于对象的比较。 在 Java 中,对 hashCode 的规定如下: 简单地说:如果两个对象相同,那么它们的 hashCode 值一定要相同;如果两个对象的 hashCode 值相同,它们并不一定相同。在 Java 规范里面规定,一般是覆盖 equals() 方法应该连带覆盖 hashCode() 方法。 toString() 方法是 Object 类中定义的另一个重要方法,是对象的字符串表现形式,语法为: public String toString()
除显式调用对象的 toString() 方法外,在进行 String 与其它类型数据的连接操作时,会自动调用 toString() 方法。 以上几种方法,在Java中是经常用到的,这里仅作简单介绍,让大家对Object类和其他类有所了解,详细说明请参考 Java API 文档。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |