zoukankan      html  css  js  c++  java
  • 日期类Date

    Java在日期类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或设置日期和时间。Date类中有很多方法在JDK1.0公布后已经过时了,在8.3中我们将介绍JDK1.0中新加的用于替代Date的功能的其它类。

    在日期类中共定义了六种构造函数。

    (1)public Date()

    创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间。

    例 Date today=new Date();//today被设置成创建时刻相对应的日期时间。

    (2)public Date (long date)

    long 型的参数date可以通过调用Date类中的static方法parse(String s)来获得。

    例 long l=Date.parse("Mon 6 Jan 1997 13:3:00");

    Date day=new Date(l);

    //day中时间为1997年 1月6号星期一,13:3:00。

    (3)public Date(String s)

    按字符串s产生一日期对象。s的格式与方法parse中字符串参数的模式相同。

    例 Date day=new Date("Mon 6 Jan 1997 13:3:00");

    //day 中时间为1997年1月6号星期一,13:3:00.

    (4)public Date(int year,int month,int date)

    (5)public Date(int year,int month,int date,int hrs,int min)

    (6)public Date(int year,int month,int date,int hrs,int min,int sec)

    按给定的参数创建一日期对象。

    参数说明:

    year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900;

    month的值域为0~11,0代表1月,11表代表12月;

    date的值域在1~31之间;

    hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;

    min和sec的值域在0~59之间。

    例 Date day=new Date(11,3,4);

    //day中的时间为:04-Apr-11 12:00:00 AM

    另外,还可以给出不正确的参数。

    例 设定时间为1910年2月30日,它将被解释成3月2日。

    Date day=new Date(10,1,30,10,12,34);

    System.out.println("Day's date is:"+day);

    //打印结果为:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910

    下面我们给出一些Date类中常用方法。

    (1)public static long UTC(int year,int month,int date,int hrs. int min,int sec)

    该方法将利用给定参数计算UTC值。UTC是一种计时体制,与GMT(格林威治时间)的计时体系略有差别。UTC计时体系是基于原子时钟的,而GTMT计时体系是基于天文学观测的。计算中使用的一般为GMT计时体系。

    (2)public static long parse(String s)

    该方法将字符串s转换成一个long型的日期。在介绍构造方法Date(long date)时曾使用过这个方法。

    字符串s有一定的格式,一般为:

    (星期 日 年 时间GMT+时区)

    若不注明时区,则为本地时区。

    (3)public void setMonth(int month)

    (4)public int getMonth()

    这两个方法分别为设定和获取月份值。

    获取的月份的值域为0~11,0代表1月,11代表12月。

    (5)public String toString()

    (6)public String toLocalString()

    (7)public String toGMTString()

    将给定日期对象转换成不同格式的字符串。它们对应的具体的格式可参看例子8.1。

    (8)public int getTimezoneOffset()

    该方法用于获取日期对象的时区偏移量。

    例8.1中对上面介绍的Date类中的基本方法进行了具体的应用,并打印了相应的结果。由于使用了一些过时的方法,所以编译时会有警告信息。另外,由于本例中的时间表示与平台有关,不同的JDK版本对此处理不完全相同,因此不同版本的JDK执行本例的结果可能有细微差异。

    例1.1 DateApp.java

    import java.lang.System;

    import java.util.Date;

    public class DateApp{

    public static void main(String args[]){

    Date today=new Date();

    //today中的日期被设成创建时刻的日期和时间,假设创建时刻为1997年3月

    //23日17时51分54秒。

    System.out.println("Today's date is "+today);

    //返回一般的时间表示法,本例中结果为

    //Today's date is Fri May 23 17:51:54 1997

    System.out.println("Today's date(Internet GMT)is:"

    +today.toGMTString());

    //返回结果为GMT时间表示法,本例中结果为

    //Today's date(Internet GMT)is: 23 May 1997 09:51:54:GMT

    System.out.println("Today's date(Locale) is:"

    +today.toLocaleString());

    //返回结果为本地习惯的时间表示法,结果为

    //Today's date(Locale)is:05/23/97 17:51:54

    System.out.println("Today's year is: "+today.getYear());

    System.out.println("Today's month is: "+(today.getMonth()+1));

    System.out.println("Today's date is: "+today.getDate());

    //调用Date类中方法,获取年月日的值。

    //下面调用了不同的构造方法来创建Date类的对象。

    Date day1=new Date(100,1,23,10,12,34);

    System.out.println("Day1's date is: "+day1);

    Date day2=new Date("Sat 12 Aug 1996 13:3:00");

    System.out.println("Day2's date is: "+day2);

    long l= Date.parse("Sat 5 Aug 1996 13:3:00 GMT+0800");

    Date day3= new Date(l);

    System.out.println("Day3's date(GMT)is: "+day3.toGMTString());

    System.out.println("Day3's date(Locale)is: "

    +day3.toLocaleString());

    System.out.println("Day3's time zone offset is:"

    +day3.getTimezoneOffset());

    }

    }

    运行结果(JDK1.3版,与原文不同,原文是JDK1.0版):

    E:java utorialjava01>java DateApp

    Today's date is Thu Dec 27 17:58:16 CST 2001

    Today's date(Internet GMT)is:27 Dec 2001 09:58:16 GMT

    Today's date(Locale) is:2001-12-27 17:58:16

    Today's year is: 101

    Today's month is: 12

    Today's date is: 27

    Day1's date is: Wed Feb 23 10:12:34 CST 2000

    Day2's date is: Fri Aug 12 13:03:00 CST 1996

    Day3's date(GMT)is: 5 Aug 1996 05:03:00 GMT

    Day3's date(Locale)is: 1996-8-5 13:03:00

    Day3's time zone offset is:-480

    E:java utorialjava01>

     

  • 相关阅读:
    三次请求(读-改-读)引出nibernate 一级缓存
    算法竞赛入门经典第一、二章摘记
    uva 10905 Children's Game
    uva 11205 The broken pedometer
    uva 10160 Servicing stations
    uva 208 Firetruck
    uva 167 The Sultan's Successors
    zoj 1016 Parencodings
    uva 307 Sticks
    uva 216 Getting in Line
  • 原文地址:https://www.cnblogs.com/borter/p/9434121.html
Copyright © 2011-2022 走看看