一、Java中的日期概述:

日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题。

在Java中,操作日期主要涉及到一下几个类:    

1、java.util.Date
类 Date 表示特定的瞬间,精确到毫秒。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。Date 中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。
2、java.text.DateFormat(抽象类)
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。
3、java.text.SimpleDateFormat(DateFormat的直接子类)
SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过 DateFormat 中的 getTimeInstance、getDateInstance 或 getDateTimeInstance 来新的创建日期-时间格式化程序。
4、java.util.Calendar(抽象类)
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
5、java.util.GregorianCalendar(Calendar的直接子类)
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家是在 1582 年 10 月 15 日创立,在其他国家要晚一些)。可由调用方通过调用 setGregorianChange() 来更改起始日期。
二、java.util.Date的使用:

   类 java.util.Date 表示特定的瞬间,精确到毫秒。

1、java.util.Date的API简介

Date()
分配 Date 对象并用当前时间初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
方法摘要
-------------
boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
Object clone()
返回此对象的副本。
int compareTo(Date anotherDate)
比较两个日期的顺序。
boolean equals(Object obj)
比较两个日期的相等性。
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
int hashCode()
返回此对象的哈希码值。
void setTime(long time)
设置此 Date 对象,以表示 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)。
mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。
dd 是一月中的某一天(01 至 31),显示为两位十进制数。
hh 是一天中的小时(00 至 23),显示为两位十进制数。
mm 是小时中的分钟(00 至 59),显示为两位十进制数。
ss 是分钟中的秒数(00 至 61),显示为两位十进制数。
zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。
yyyy 是年份,显示为 4 位十进制数。
 1 package dates;2 3 import java.util.Date;4 5 public class TestDate {6      public static void main(String args[]) {7             TestDate nowDate = new TestDate();8             nowDate.getSystemCurrentTime();9             nowDate.getCurrentDate();
10         }
11
12       public void getSystemCurrentTime() {
13             System.out.println("----获取系统当前时间----");
14             System.out.println("系统当前时间 = " + System.currentTimeMillis());
15         }
16
17       public void getCurrentDate() {
18             System.out.println("----获取系统当前日期----");
19             //创建并初始化一个日期(初始值为当前日期)
20             Date date = new Date();
21             System.out.println("现在的日期是 = " + date.toString());
22             System.out.println("自1970年1月1日0时0分0秒开始至今所经历的毫秒数 = " + date.getTime());
23         }
24
25 }

2、java.text.SimpleDateFormat的使用:

SimpleDateFormat 是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 -> 文本)、分析(文本 -> 日期)和规范化。
定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

 1 package dates;2 3 import java.text.DateFormat;4 import java.text.ParseException;5 import java.text.SimpleDateFormat;6 import java.util.Date;7 import java.util.Locale;8 9 public class TestSimpleDateFormat {
10     public static void main(String args[]) throws ParseException {
11         TestSimpleDateFormat test = new TestSimpleDateFormat();
12         test.testDateFormat();
13
14     }
15
16     public void testDateFormat() throws ParseException {
17         //创建日期
18         Date date = new Date();
19         //创建不同的日期格式
20         DateFormat df1 = DateFormat.getInstance();
21         DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
22         DateFormat df3 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);     //产生一个指定国家指定长度的日期格式,长度不同,显示的日期完整性也不同
23         DateFormat df4 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒 EE", Locale.CHINA);
24         DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEEEE", Locale.US);
25         DateFormat df6 = new SimpleDateFormat("yyyy-MM-dd");
26         DateFormat df7 = new SimpleDateFormat("yyyy年MM月dd日");
27
28         //将日期按照不同格式进行输出
29         System.out.println("-------将日期按照不同格式进行输出------");
30         System.out.println("按照Java默认的日期格式,默认的区域                      : " + df1.format(date));
31         System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,系统默认区域      :" + df2.format(date));
32         System.out.println("按照日期的FULL模式,区域设置为中文                      : " + df3.format(date));
33         System.out.println("按照指定格式 yyyy年MM月dd日 hh时mm分ss秒 EE ,区域为中文 : " + df4.format(date));
34         System.out.println("按照指定格式 yyyy-MM-dd hh:mm:ss EE ,区域为美国        : " + df5.format(date));
35         System.out.println("按照指定格式 yyyy-MM-dd ,系统默认区域                  : " + df6.format(date));
36
37         //将符合该格式的字符串转换为日期,若格式不相配,则会出错
38         Date date1 = df1.parse("07-11-30 下午2:32");
39         Date date2 = df2.parse("2007-11-30 02:51:07 星期五");
40         Date date3 = df3.parse("2007年11月30日 星期五");
41         Date date4 = df4.parse("2007年11月30日 02时51分18秒 星期五");
42         Date date5 = df5.parse("2007-11-30 02:51:18 Friday");
43         Date date6 = df6.parse("2007-11-30");
44
45         System.out.println("-------输出将字符串转换为日期的结果------");
46         System.out.println(date1);
47         System.out.println(date2);
48         System.out.println(date3);
49         System.out.println(date4);
50         System.out.println(date5);
51         System.out.println(date6);
52     }
53 }

转载:

https://www.cnblogs.com/GH0522/p/8283188.html

转载于:https://www.cnblogs.com/appium/p/10580468.html

[转载]java中Date,SimpleDateFormat相关推荐

  1. [转载] java 中 date类型详解

    参考链接: Java中的date after()方法 举例: Date的after和before方法解释 Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时 ...

  2. 最新Java中Date类型详解

    一.Date类型的初始化 1. Date(int year, int month, int date); 直接写入年份是得不到正确的结果的. 因为java中Date是从1900年开始算的,所以前面的第 ...

  3. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  4. Java中Date和Calender类的使用方法

    查看文章     Java中Date和Calender类的使用方法 2009-10-04 20:49 Date和Calendar是Java类库里提供对时间进行处理的类,由于日期在商业逻辑的应用中占据着 ...

  5. java calendar类_2020 年,你还在使用 Java 中的 SimpleDateFormat 吗?

    今天我和大家一起聊一聊SimpleDateFormat ,这都2020年了,怎么还在用SimpleDateFormat ? 其实,作为一名Java 程序员,我们会经常在编程时候和时间打交道,比如要把某 ...

  6. java中Date日期类型的大小比较

    java中Date日期类型的大小比较 方法一: java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小 String beginTim ...

  7. java 去除时间中的PM_在Java中使用SimpleDateFormat(“ a”)显示AM / PM时间标记

    您可以使用SimpleDateFormat(" a")在Java中轻松显示AM / PM时间标记. 首先,要使用Java中的SimpleDateFormat类,请导入以下包.imp ...

  8. java中date和时间戳相互转换以及获取前一个小时的时间

    1.时间戳是指文件属性里的创建.修改.访问时间. 数字时间戳技术是数字签名技术一种变种的应用.在电子商务交易文件中,时间是十分重要的信息.在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被 ...

  9. java.util.Date java.sql.Date SimpleDateFormat String 转DATE

    涉及知识点: 1.SQL server  中   datetime   对应  java  中的  timeStamp  类型 PreparedStatement   |  CallableState ...

最新文章

  1. awk 6.0 — awk模式之二
  2. 【c语言】查找200以内既是3的倍数又是5的倍数的数
  3. 数字信号处理中卷积的计算
  4. 研发流程与项目管理之关系
  5. html表格自动换行
  6. 云炬WEB开发笔记2-7 代理神器CharlesFiddler
  7. lncrna研究,2021最新相关资料合集
  8. Java 中的四种引用
  9. Linux突然断电造成系统文件损坏而无法启动
  10. 如何正确获取安卓外置SD卡的路径
  11. linux ps 2鼠标驱动,佳能 PS/2 TrackPoint 驱动程序下载-更新佳能软件(鼠标)
  12. WPF 加载PDF文件
  13. python helper函数_用Python中的helper函数对ABC进行单元测试
  14. 【学习笔记】欧拉筛法(线性筛素数)
  15. 法雷序列的c语言程序,程序设计实践(一).PDF
  16. 【转】Endnote中英文混排及输出作者全名的解决办法
  17. Linux命令总结-cd
  18. sws_scale图像缩放函数介绍
  19. 调试接口用的HTML,javascript调试接口
  20. python考勤管理系统_Mysql和python在考勤系统中的应用

热门文章

  1. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...
  2. 学python有哪些书推荐-有哪些Python学习路线值得推荐?线路及书籍推荐都在这里...
  3. python在财务上的应用-财会人必看:这个工具,30分钟可以把人家一天的工作都给干完!...
  4. 风变编程的python课程怎么样-高效学风变编程Python,解锁不一样的职场进阶之路...
  5. python语言命令大全-python常用命令
  6. python画三维平面-Python三维绘图--Matplotlib
  7. python基础知识总结-python编程语言基础知识总结
  8. 不想学python-学Python好久都学不会?然后选择放弃,总结出这几个原因
  9. python中的format什么意思中文-python的format什么意思
  10. python乘法口诀表-如何用python语言发出乘法口诀表