Java学习——日期类

Java学习——日期类

摘要:本文主要记录了Java开发中用到的和日期有关的类以及对日期的操作。

部分内容来自以下博客:

https://www.cnblogs.com/talk/p/2680591.html

概述

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

java.util.Date

Date类表示特定的瞬间,精确到毫秒。从JDK1.1开始,应该使用Calendar类实现日期和时间字段之间转换,使用DateFormat类来格式化和分析日期字符串。Date中的把日期解释为年、月、日、小时、分钟和秒值的方法已废弃。

构造方法

Date():分配Date对象并用当前时间初始化此对象,以表示分配它的时间(精确到毫秒)。

Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年01月01日 00:00:00 GMT)以来的指定毫秒数。

java.text.DateFormat

DateFormat类是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为Date对象,或者表示为从 GMT(格林尼治标准时间)1970年01月01日 00:00:00这一刻开始的毫秒数。

DateFormat不是同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式,则它必须保持外部同步。

java.text.SimpleDateFormat

SimpleDateFormat类是一个以与语言环境相关的方式来格式化和分析日期的具体类。

SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式。但是,仍然建议通过DateFormat中的getTimeInstance、getDateInstance或getDateTimeInstance来新的创建日期-时间格式化程序。

格式化字段含义

格式化说明

将Date转化为常见的日期时间字符串

1 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 System.out.println(dateFormat.format(new Date()));

将文本日期转化为Date

1 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 Date date = null;
3 try {
4     date = dateFormat.parse("2019-01-01 01:30:28");
5 } catch (ParseException e) {
6     e.printStackTrace();
7 }
8 System.out.println(date);

java.util.Calendar

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年01月01日的00:00:00.000,格里高利历)的偏移量。

与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化。

常用方法

getInstance():公有静态方法,用于获取Calendar的实例。

set(int field, int value):设置日历的年月日时分秒。

get(int field):获取日历的年月日时分秒。

setTime(Date date):设置给定的日期。

getTime():获取日期。

add(int field, int amount):按照日历的规则,给指定字段添加或减少时间量。

getTimeInMillies():以毫秒为单位返回该日历的时间值。

java.util.GregorianCalendar

GregorianCalendar是Calendar的一个具体子类,提供了世界上大多数国家使用的标准日历系统。

GregorianCalendar是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家是在1582年10月15日创立,在其他国家要晚一些)。可由调用方通过调用setGregorianChange()来更改起始日期。

原文地址:https://www.cnblogs.com/shamao/p/10918627.html