java 日期年度 35变2035_Java常用类Date相关知识

Date:

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

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。

Date中有很多过时的方法

@Deprecated

过时的,可能在之后的版本删除

构造方法:

Date() :

表示创建对象的系统时间即当前时间(精确到毫秒值),

打印输出其实调用了toString方法。

Date(long date) :

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

想表示基准时间之前的时间,Date可以传入负数。

补充:最开始毫秒值是用int表示,最大的只能表示到2035年,后来改用long型表示

测试代码:

1 importjava.util.Date;2

3 //Date 初始化

4 public classDemo_01 {5 public static voidmain(String[] args) {6 Date d1=newDate();7 System.out.println("d1 = " + d1);//d1 = Tue Jul 09 19:50:56 CST 2019

8 Date d2=new Date(10000000000L);9 System.out.println("d2 = " + d2);//d2 = Mon Apr 27 01:46:40 CST 197010 //输出d1,d2其实调用了toString方法

11 Date d3=new Date(-100000000L);12 System.out.println("d3 = " + d3);//d3 = Wed Dec 31 04:13:20 CST 1969

13

14

15 }16 }

成员方法:

long getTime() :

返回自基准时间以来此Date所代表的毫秒值。

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

void setTime(long time) :

设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。

测试代码:

1 importjava.util.Date;2

3 //Date里的成员方法

4 public classDemo_02 {5 public static voidmain(String[] args) {6 Date date = newDate();7 long time=date.getTime();8 System.out.println("time = " + time);//time = 1562673980563

9 Date date1=newDate();10 System.out.println("date1 = " + date1);//date1 = Tue Jul 09 20:06:20 CST 2019

11 date1.setTime(1000000000000L);12 System.out.println("date1 = " + date1);//date1 = Sun Sep 09 09:46:40 CST 2001

13 }14 }

日期的格式化和解析:

为了使用更多格式的输出日期,这里使用了DateForat类,注意这是一个抽象类,作用就是格式化日期,不能实例化,需要通过创建子类(SimpleDateFormat)对象来调用方法。

类 DateFormat

概述:DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本 Date-->String)、解析(文本-> 日期 String -->Date)和标准化。

格式化:日期 --> 文本 Date --> String

解析: 文本 --> 日期 String --> Date

方法:

格式化方法:

String format(Date date)

将一个 Date 格式化为日期/时间字符串。

解析方法:

Date parse(String source)

从给定字符串的开始解析文本,以生成一个日期。

因为DateFormat是抽象类,无法实例化,所以需要创建一个它的子类对象来调用方法。

类 SimpleDateFormat extends DateFormat:

概述: 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

定义了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

(这里只写了一些常用的)

y 年

M 月

d 日

H 时

m 分

s 秒(小写)

构造方法摘要 :

SimpleDateFormat() :(不推荐使用)

用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

SimpleDateFormat(String pattern) :

用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

例如: DateDFormat df=new SimpleDateFoemat(”yyyy年MM月dd日 HH:mm:ss“);

注意:用什么模式格式化就要用什么模式解析,不然会出现异常,这里先抛出异常

测试代码:

1 importjava.text.ParseException;2 importjava.text.SimpleDateFormat;3 importjava.util.Date;4

5 //日期格式化6 //DateFormat 类7 //SimpleDateFormat extends DateFormat类

8 public classDemo_03 {9 public static void main(String[] args) throwsParseException {10 Date time=newDate();11 SimpleDateFormat sf=new SimpleDateFormat("yyy年MM月dd日 HH:mm:ss");12 String s=sf.format(time);13 System.out.println("s = " + s);//s = 2019年07月09日 20:30:48

14 Date d1=sf.parse(s);15 System.out.println("d1 = " +d1);16 System.out.println(d1.equals(time));//false

17 Date time1=new Date(0);18 Date time2=new Date(0);19 System.out.println(time1.equals(time2));//ture

20

21

22 }23

24 }

练习题:

1,计算来这个世界多少天了

1 importjava.text.DateFormat;2 importjava.text.ParseException;3 importjava.text.SimpleDateFormat;4 importjava.util.Date;5

6 //算一下你来到这个世界多少天?7 //分析:8 //1. 将字符串解析成Date对象9 //2. 创建一个表示当前时间的对象,计算两者之间的天数

10 public classHomeWork02 {11 public static void main(String[] args) throwsParseException {12 String s="1997年02月15日0:0:0";13 DateFormat df=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");14 Date birthday=df.parse(s);15 Date nowaday=newDate();16 long days= (nowaday.getTime() - birthday.getTime()) / (1000 * 60 * 60 * 24);17 System.out.println(days);18

19 }20 }

2.制作一个工具类DateUtil:提供两个方法:1.将日期格式化成字符串,2,将字符串解析成日期

1 importjava.text.DateFormat;2 importjava.text.ParseException;3 importjava.text.SimpleDateFormat;4 importjava.util.Date;5

6 //制作一个工具类

7 public classDateUtil {8 privateDateUtil(){}9

10 /**

11 * 将日期按照给定的格式进行格式化12 *@paramdate 日期13 *@parampattern 指定的格式14 *@return格式化后的文本15 */

16 publicString Date2String(Date date, String pattern) {17 DateFormat df = newSimpleDateFormat(pattern);18 returndf.format(date);19 }20

21 /**

22 * 将字符串按照给定的格式解析成日期23 *@paramdate 给定的字符串24 *@parampattern 给定的模式25 *@return日期对象26 *@throwsParseException 如果不能按照给定的格式进行解析,就抛出ParseException27 */

28 public Date String2Date(String date,String pattern) throwsParseException {29 DateFormat df=newSimpleDateFormat(pattern);30 returndf.parse(date);31 }32 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值