Javajava.util包中提供了Date类,这个类封装了当前日期和时间,Date类支持两种构造函数。第一种无参构造函数初始化对象new Date(),另外一种有参构造函数,自2017年1月1日凌晨起经过的毫秒数new Date(long millisec)


Date类调用方法列表

SN方法和描述
                1boolean after(Date date)
如果调用Date对象包含或晚于指定的日期则返回true,否则,返回false。
                2boolean before(Date date)
如果调用Date对象包含或早于日期指定的日期返回true,否则,返回false。
                3Object clone( )
重复调用Date对象。
                4int compareTo(Date date)
比较日期的调用对象的值。如果这两个值相等返回0。如果调用对象是早于日期返回一个负值。如果调用对象最迟日期返回正值。
                5int compareTo(Object obj)
操作以相同的compareTo(Date) 如果obj是一个类日期。否则,它会抛出一个ClassCastException。
                6boolean equals(Object date)
如果调用Date对象包含相同的时间及日期指定日期则返回true,否则,返回false。
                7long getTime( )
返回自1970年1月1日起已经过的毫秒数。
                8int hashCode( )
返回调用对象的哈希代码。
                9void setTime(long time)
设置所指定的时间,这表示经过时间以毫秒为单位,1970年1月1日从午夜的时间和日期
                10String toString( )
调用Date对象转换为字符串,并返回结果。


获取当前日期和时间

在Java中得到当前的日期和时间。可以使用一个简单的Date对象的toString()函数,实例如下:

package com.yoodb.blog;
import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 实例化日期对象
       Date date = new Date();
        
       // 日期转成字符串输出
       System.out.println(date.toString());
   }
}

运行结果如下:

Wed Aug 16 10:11:58 CST 2017


日期比较:

使用getTime()函数来获得自1970年1月1日凌晨时,起已经过的毫秒数,然后比较两个对象的值。

使用compareTo()函数,这是由Comparable接口定义和日期执行。


使用SimpleDateFormat格式化日期

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("当前时间: " + ft.format(dNow));
   }
}

运行结果如下:

当前时间: 星期三 2017.08.16 at 10:19:48 上午 CST


使用时间模式字符串(日期和时间的格式化编码表)。在这个模式中,所有的ASCII字母被保留为模式字母,其定义如下:

字母描述示例
                G                纪元标记                AD
                y                四位年份                2017
                M                月份                March or 17
                d                一个月的某一日期                17
                h                 A.M./P.M. (1~12)格式小时                12
                H                一天中的小时 (0~23)                23
                m                分钟数                24
                s                秒数                54
                S                毫秒数                212
                E                星期几                Tuesday
                D                一年中的某一天                251
                F                一个月中第几周的周几                2 (second Wed. in July)
                w                一年中第几周                40
                W                一个月中第几周                1
                a                A.M./P.M. 标记                PM
                k                一天中的小时(1~24)                24
                K                 A.M./P.M. (0~11)格式小时                10
                z                时区                Eastern Standard Time
                '                文字定界符                Delimiter
                "                单引号                `


使用printf格式化日期

日期和时间格式用printf方法可以非常轻松地做到。您可以使用两个字母的格式,从t和在下面给出的表格中的其中一个字母结束。实例:

import java.util.Date;
public class DateDemo {
  public static void main(String args[]) {
     // 初始化日期对象
     Date date = new Date();
     // 时间转成字符串输出
     String str = String.format("当前日期或时间 : %tc", date );
     System.out.printf(str);
  }
}

运行结果如下:

当前日期或时间 : 星期三 八月 16 10:24:27 CST 2017


日期和时间转换字符

                字符                描述                实例
                c                Complete date and time                Mon May 17 10:25:57 CDT 2017
                F                ISO 8601 date                2017-08-16
                D                U.S. formatted date (month/day/year)                08/16/2017
                T                24-hour time                19:05:15
                r                12-hour time                07:05:15 pm
                R                24-hour time, no seconds                19:05
                Y                Four-digit year (with leading zeroes)                2017
                y                Last two digits of the year (with leading zeroes)                17
                C                First two digits of the year (with leading zeroes)                20
                B                Full month name                February
                b                Abbreviated month name                Feb
                m                Two-digit month (with leading zeroes)                08
                d                Two-digit day (with leading zeroes)                03
                e                Two-digit day (without leading zeroes)                9
                A                Full weekday name                Monday
                a                Abbreviated weekday name                Mon
                j                Three-digit day of year (with leading zeroes)                069
                H                Two-digit hour (with leading zeroes), between 00 and 23                18
                k                Two-digit hour (without leading zeroes), between 0 and 23                18
                I                Two-digit hour (with leading zeroes), between 01 and 12                9
                l                Two-digit hour (without leading zeroes), between 1 and 12                9
                M                Two-digit minutes (with leading zeroes)                05
                S                Two-digit seconds (with leading zeroes)                19
                L                Three-digit milliseconds (with leading zeroes)                476
                N                Nine-digit nanoseconds (with leading zeroes)                611000000
                P                Uppercase morning or afternoon marker                PM
                p                Lowercase morning or afternoon marker                pm
                z                RFC 822 numeric offset from GMT                -0800
                Z                Time zone                PST
                s                Seconds since 1970-01-01 00:00:00 GMT                1502850876
                Q                Milliseconds since 1970-01-01 00:00:00 GMT                1502850903515

评论

分享:

支付宝

微信