Java快速入门(22) - 日期和时间类

日期

Java在java.util包中提供了Date类,其封装了当前日期和时间。
Date类包含了下面两种构造器:

序号 构造器 & 描述
1 Date() 这个构造器将对象初始化为当前日期和时间。
2 Date(long millisec) 这个构造器有一个传入参数,这个参数是从1970年2月1日之后的毫秒数。

下表中列出了Date类中定义的方法:

序号 方法及其描述
1 boolean after(Date date)
当前日期在指定日期后面时返回true,否则返回false。
2 boolean before(Date date)
当前日期在指定日期前面时返回true,否则返回false。
3 Object clone( )
复制日期对象。
4 int compareTo(Date date)
将两个日期进行比较。若当前日期与指定日期相同,则返回0;若当前日期在指定日期后面,则返回负数;若当前日期在指定日期前面,则返回正数。
5 int compareTo(Object obj)
当obj是Date类型对象时,功能和conpareTo(Date date)方法相同;否则返回ClassCastException异常。
6 boolean equals(Object date)
当前日期和指定日期的日期和时间都相同时返回true,否则返回false。
7 long getTime( )
返回从1970年1月1日到当前日期经过的毫秒数。
8 int hashCode( )
返回日期对象的哈希值。
9 void setTime(long time)
设置日期时间,传入值为日期距离1970年1月1日经过的毫秒数。
10 String toString( )
将日期对象转换为字符串返回。

获取当前日期和时间

下面代码中写的是Java中获取日期和时间的一种非常简单的方法。使用的是一个简单的Date对象然后用toString()方法来打印当前日期和时间。

import java.util.Date;
public class DateDemo {
   

   public static void main(String args[]) {
   
      //初始化Date对象
      Date date = new Date();

      //以字符串形式输出日期
      System.out.println(date.toString());
   }
}

程序输出如下:

on May 04 09:51:52 CDT 2009

日期的比较

下面是比较两个日期对象的方法:

  • 可以使用getTime()方法获取两个日期分别距离1970年2月1日的毫秒数,然后再比较毫秒数的大小
  • 使用before(),after()和equals()方法来比较。例如,每月的12日在18日之前,因此,new Date(99,2,12).before(new Date(99,2,18))返回true。
  • 使用compareTo()方法。这个方法由Comparable接口定义,且被Date类实现。

使用SimpleDateFormat来格式化Date

SimpleDateFormat类是一个可以格式化和解析日期的具体类(不是抽象类),其对系统的语言环境时敏感的。SimpleDateFormat允许我们使用自定义的日期模式来进行格式化。

程序实例

import java.util.*;
import java.text.*;

public class DateDemo {
   

   public static void main(String args[]) {
   
      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

程序输出为:

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

简单的DateFormat格式化编码

要想指定日期时间的格式,需要用到日期模式字符串。在这个模式里面,所有用到的ASCII编码字符都被保留为模式字符,也就是下面这些:

字符 说明 举例
G 描述时代 AD
y 2001
M July 或 07
d 10
h 时(1-12) 12
H 时(0-23) 22
m 30
s 55
S 毫秒 234
E 星期 Tuesday
D 一年中的第几天 360
F 一个月中的第n个星期几 2(7月的第2个星期三)
w 一年中的第几个星期 40
W 一个月中的第几个星期 1
a A.M./P.M.的标识 PM
k 一天中的第几个小时(1-24) 24
K AM或PM计时下的第几个小时(0-11) 10
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值