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\tutorial\java01>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\tutorial\java01>

日期类Date的更多相关文章

  1. 运算符重载+日期类Date

    Hello,一只爱学习的鱼 大学学习C++运算符重载的时候,老师出了一道"运算符重载+类"的综合练习题,让我们来一起看看吧! 题目: 设计一个日期类Date,包括年.月.日等私有成 ...

  2. 日期类 Date

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  3. Java基础——日期类Date

    一.概述 date代表一个特定的时间,精确到毫秒 二.构造方法 方法名 说明 public Date() 分配一个Date对象,并初始化,以便它代表被分配的时间,精确到毫秒 public Date(l ...

  4. Java:日期类Date与Calendar

    Timestamp类型与日期类型之间的转化? Timestamp timestamp = Timestamp.valueOf("2017-03-17 07:00:00"); Dat ...

  5. JAVA的日期类DATE

    好记性不如烂笔头. 1:常见场景  字符串转时间格式,日期转换字符串(在前后端交互 json) 导入包(好像我的IDEA 不知道装了什么插件 会自动补齐提示) import java.text.Par ...

  6. 七:日期类Date、日期格式化SimpleDateFormat、日历Calendar

    日期的格式转换:

  7. 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类

    Date日期类 Date表示特定的时间,精确到毫秒; 构造方法: public Data() public Date(long date) 常用方法: public long getTime() pu ...

  8. Problem B: 时间和日期类(III)

    Problem B: 时间和日期类(III) Time Limit: 4 Sec  Memory Limit: 128 MBSubmit: 2889  Solved: 1732[Submit][Sta ...

  9. java基础22 日期类、日历类、日期格式类

    package com.dhb.code; import java.text.ParseException; import java.text.SimpleDateFormat; import jav ...

随机推荐

  1. 帮助自定义选择框样式的Javascript - DropKick.js

    来源:GBin1.com 在线演示  在线下载 当你想要设计一个页面样式时,没有什么比表单更让人头疼了.而当你设计一个表单的样式时,最让你头疼的就应该非下拉框<select>莫属了. 我们 ...

  2. 二叉树(9)----打印二叉树中第K层的第M个节点,非递归算法

    1.二叉树定义: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTree ...

  3. Android开发--用户定位服务--UserLocation

    Android开发--用户定位服务--UserLocation 2013-01-28 08:32:26     我来说两句      作者:BruceZhang 收藏    我要投稿 [java] & ...

  4. springMVC 头像裁剪上传并等比压

    第一次写头像裁剪上传,原本想着直接本地预览裁剪再上传,可是时间有限,jquery.jcrop貌似并没有对 假设是ie下图片预览效果是滤镜做的  做出对应处理,也没有时间去改;仅仅好将就一下先把图片上传 ...

  5. 使用 ssh 从 Gerrit 获取 patch 信息

    使用命令行(ssh)对Gerrit进行查询, 官方地址:https://review.openstack.org/Documentation/cmd-query.html 程序例子 import os ...

  6. python 使用 BeautifulSoup 解析html

    下载地址:http://www.crummy.com/software/BeautifulSoup/bs4/download/4.3/beautifulsoup4-4.3.2.tar.gz 说明:这个 ...

  7. 怎样将游戏从Unity导到iOS设备上

    当我开始开发自己的iOS游戏时,我会考虑的第一件事便是如何将其导出到设备中,如此有效地测试我的游戏.最初,该过程看似很长且复杂,我所遇到的主要问题是,尽管存在许多资源,但是它们并非完全来自同样的地方, ...

  8. ES6 set 应用场景

    1.数组去重 let arr = [3, 5, 2, 2, 5, 5]; let unique = [...new Set(arr)]; // [3, 5, 2] 2.并集(Union).交集(Int ...

  9. ES6 对象扩展

    1.属性和变量可以简写 let birth = '2000/01/01'; const Person = { name: '张三', //等同于birth: birth birth, // 等同于he ...

  10. 使用xml-rpc调试openerp模块中的函数

    运行openerp模块中的函数 有很多方式, 可以在视图中加个按钮然后点击它, 也可以在集成开发环境中强制执行它. 不过, 用python写个小脚本,xml-rpc调用直接执行它, 无疑是最简便的方法 ...