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/18HH:MM:SS PM格式(12时制):12:44:02 上午HH:MM:SS格式(24时制):00:44:02HH:MM格式(24时制):00:44F:\>
重复提供日期,可格式化:
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 %<te %<tY", "Due date:", date); }}输出结果:Due date: 一月 14 2018Due date: 一月 14 2018%1$s>>"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)。 |
**