2021-07-26 日期时间类

1.2常⽤⽅法

public long getTime() :把⽇期对象转换成对应的时间毫秒值;

public void setTime(long time)把时间毫秒值转成日期对象

public class Demo{

public static void main(String[] arg){

Date date=new Date();

System.out.println(“当前时间:”+date);

long l=date.getTime();

System.out.println(“当前时间转成long:”+l);

date.setTime(l);

System.out.println(“long类型转成date:”+date);

}

/*

当前时间:Mon Jul 26 19:57:56 CST 2021

当前时间转成long:1627300676266

long类型转成date:Mon Jul 26 19:57:56 CST 2021

*/

}

2 DateFormat类


java.text.DateFormat 是⽇期/时间格式化⼦类的抽象类,我们通过这个类可以帮我们完成⽇期

和⽂本之间的转换,也就是可以在Date对象与String对象之间进⾏来回转换

1.格式化:按照指定的格式,从Date 对象转换成Date对象

2.解析 :按照指定的格式,从String 对象转成Date 对象

构造⽅法

由于DateFormat为抽象类,不能直接使⽤,所以需要常⽤的⼦类 java.text.SimpleDateFormat 。这个类需要⼀个模式(格式)来指定格式化或解析的标准。

构造⽅法为:

public SimpleDateFormat(String pattern) :⽤给定的模式和默认语⾔环境的⽇期格式符号构造SimpleDateFormat。

参数pattern是⼀个字符串,代表⽇期时间的⾃定义格式

格式规则

常⽤的格式规则为:

| 标识字母(区分大小写) | 含义 | 示例 |

| — | — | — |

| y | 年 | yyyy年-2021年;yy-21年 |

| M | 月 | MM⽉ - 01⽉;M⽉ - 1⽉ |

| d | ⽇ | dd⽇ - 06⽇;d⽇ - 6⽇ |

| H | 时 | HH:mm:ss - 12:46:33 |

| m | 分 | hh(a):mm:ss - 04(下午):47:34 |

| s | 秒 | a h时 - 下午12时 |

| E | 星期 | E - 星期⽇(Sun) |

| a | 下午 | a h时 - 下午12时 |

创建SimpleDateFormat对象的代码如:

import java.text.DateFormat;

import java.text.SimpleDateFormat;

public class Demo{

public static void mian(String[] arg){

DateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);

}

}

常⽤⽅法 format parse

DateFormat类的常⽤⽅法有:

1.public String format(Date date) :将Date对象格式化为字符串。

2.public Date parse(String source) :将字符串解析为Date对象。

format方法

import java.text.SimpleDateFormat;

import java.util.Date;

public class Demo1 {

public static void main(String[] args) {

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd E a hh:mm:ss”);

/*

format()将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。

parse()解析字符串的文本,生成 Date

*/

Date date=new Date();

System.out.println(date);

String str=sdf.format(date);

System.out.println(str);

}

/*Mon Jul 26 20:17:04 CST 2021

2021-07-26 周一 下午 08:17:04*/

}

parse

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/*

把String转换成Date对象

*/

public class Demo04DateFormatMethod {

public static void main(String[] args) throws ParseException {

DateFormat df = new SimpleDateFormat(“yyyy年MM⽉dd⽇”);

String str = “2021年12⽉11⽇”;

Date date = df.parse(str);

System.out.println(date); // Tue Dec 11 00:00:00 CST 2021

}

}

练习

使⽤⽇期时间相关的API,计算出⼀个⼈已经出⽣了多少天。

思路:

  1. 获取当前时间对应的毫秒值

  2. 获取⾃⼰出⽣⽇期对应的毫秒值

  3. 两个时间相减(当前时间– 出⽣⽇期)

代码实现:

public class Demo1 {

public static void main(String[] args) throws Exception {

System.out.println(“请输⼊出⽣⽇期 格式 yyyy-MM-dd”);

// 获取出⽣⽇期,键盘输⼊

String birthdayString = new Scanner(System.in).next();

// 将字符串⽇期,转成Date对象

// 创建SimpleDateFormat对象,写⽇期模式

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);

// 调⽤⽅法parse,字符串转成⽇期对象

Date birthdayDate = sdf.parse(birthdayString);

// 获取今天的⽇期对象

Date todayDate = new Date();

// 将两个⽇期转成毫秒值,Date类的⽅法getTime

long birthdaySecond = birthdayDate.getTime();

long todaySecond = todayDate.getTime();

long secone = todaySecond - birthdaySecond;

if (secone < 0) {

System.out.println(“还没出⽣呢”);

} else {

System.out.println(secone / 1000 / 60 / 60 / 24);

}

}

}

/*请输⼊出⽣⽇期 格式 yyyy-MM-dd

1999-12-13
7896
*/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值