java.util 包提供了Date 类来封装当前的日期和时间 提供了2个函数来实例化 Date 对象
1.Date()
2.Date(long millisec)//参数是从1970/01/01起的毫秒数
日期比较
Java使用以下三种方法来比较两个日期:
1.使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2.使用方法 before(),after() 和 equals()。
3.使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
使用 SimpleDateFormat 格式化日期
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。

import java.util.*;
import java.text.*;
public class DateDemo {
   public static void main(String args[]) { 
      Date dNow = new Date( );
      SimpleDateFormat ss = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date: " +ss.format(dNow));
   }
}
输出结果:
Current Date:星期日 2018.01.14 at 00:29:06 上午 CST

日期和时间的格式化编码

字母 描述
G 纪元标记
y 四位年份
M 月份
d Text
h 12小时制
H 24小时制
m
s
S 毫秒
E 星期几
D 一年中的日子
F 一个月中第几周的周几
w 一年中第几周
W 一个月的第几周
a a.m/p.m
k 一天中的小时1-24
K A.M./P.M. (0~11)格式小时
z 时区
' 文字定界符
'' 单引号

使用printf格式化日期

转换符 描述
c 包括全部日期和时间信息
F "年-月-日"格式
D "月/日/年"格式
r "HH:MM:SS PM"格式(12时制)
T "HH:MM:SS"格式(24时制)
R "HH:MM"格式(24时制)
import java.util.Date;
public class DateDemo {
  public static void main(String args[]) { 
     Date date = new Date();
    System.out.printf("全部日期和时间信息:%tc%n",date);          
    System.out.printf("年-月-日格式:%tF%n",date);  
    System.out.printf("月/日/年格式:%tD%n",date);  
    System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
    System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
    System.out.printf("HH:MM格式(24时制):%tR",date);  
  }
}
输出结果:
全部日期和时间信息:星期日 一月 14 00:44:02 CST 2018
年-月-日格式:2018-01-14
月/日/年格式:01/14/18
HH:MM:SS PM格式(12时制):12:44:02 上午
HH:MM:SS格式(24时制):00:44:02
HH:MM格式(24时制):00:44
F:\>

重复提供日期,可格式化:

import java.util.Date;  
public class DateDemo { 
   public static void main(String args[]) {
       Date date = new Date();       
       System.out.printf("%1$s %2$tB %2$td %2$tY",  "Due date:", date);
             System.out.printf("%s %tB %>"Due date:" 输出第一个字符串:Due date:
%2$tB %2$td %2$tY>>date 输出第2个字符串date中的月日年

**Date 对象创建后 可调用的方法:

方法 描述
boolean after(Date date) 若当调用此方法的Date对象在指定日期之后返回true,否则返回false
boolean before(Date date) 若当调用此方法的Date对象在指定日期之前返回true,否则返回false
Object clone( ) 返回此对象的副本
int compareTo(Date date) 比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
int compareTo(Object obj) 若obj是Date类型则操作等同于compareTo(Date) 。否则它抛出ClassCastException。
boolean equals(Object date) 当调用此方法的Date对象和指定日期相等时候返回true,否则返回false
long getTime( ) 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
int hashCode( ) 返回此对象的哈希码值。
void setTime(long time) 用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。
String toString( ) 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

**