时间日期类Date、SimpleDateFormat

世界标准时间:原子钟

中国时间:原子钟+8小时

计算机的时间原点:1970年1月1日 00:00:00

1秒 = 1000毫秒

Date类:

精确到毫秒,属于util包下的,sql包下的是后面数据库时使用的

构造方法:

public Date()

创建一个Date对象,表示默认时间

public Date(long date)创建一个Date对象,表示指定时间

Date d  =  new Date();-----空参

sout(d)-------打印出来的是 电脑当前时间

Date d  =  new Date(  0L  );

sout(d)-------打印出来的是 原子钟  即:Thu Jun 01 08:00:00 CST 1970

成员方法:

public long getTime()

获取对象毫秒值

public void setTime(long time)设置时间,传递毫秒值

System.currentTimeMillis()和getTime效果 一样,都是获取当前时间的毫秒值,但在计算时间时用System.currentTimeMillis()

setTime()的使用方式:

Date  s = new Date();-----原本显示是电脑时间

s.setTime( 0 L );----设置为时间原点

sout(s)----得出时间原点

SimpleDateFormat:

可以对Date对象,进行格式化和解析

年 y

月 M

日 d

时 H

分 m

秒 s

2021-11-11 00:00:00   =  yyyy-MM-dd HH:mm:ss

2021年11月11日 00:00:00   =  yyyy年MM月dd日 HH:mm:ss

构造方法:

public SimpleDateFormat()构造一个SimpleDateFormat,使用默认模式??
public SimpleDateFormat(String s)构造一个SimpleDateFormat,使用指定模式

默认模式的用法是什么?

用的比较少

for (int i = 0; i <= 12; i++) {

    String s = "2021年"+i+"月";
    SimpleDateFormat s1 = new SimpleDateFormat("yyyy年M月");

    Date r = s1.parse(s);

    System.out.println(r);
    String format = s1.format(r);
    System.out.println(format);
}

当i不在1-12月的范围内,它会循环,例如:i= 0  输出的是12月,i= 13输出的是1月,即每12个数为一个周期

但星期数 会随着月份的变化而变化,不知为何?

后期注意即可

成员方法:

public final String format(Date d)将时间日期转化成字符串
public Date parse(String s)从给定字符串的开始解析问题以生成日期

格式化:(Date → String)

public final String format(Date d)

解析:(String → Date)

public Date parse(String s) 

注意:

1.没有时间,按00:00:00显示

2.默认时间格式:周 月 日 时 年

3.2022-12-1 输出格式为 2022-12-01

Date和SimpleDateFormat搭配使用:

Date d = new Date();

SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String a = s.format(d);

sout(s)-----------将当前电脑时间以 "yyyy-MM-dd HH:mm:ss" 这个格式输出

String s1 = "2021年11月2日";

SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日");

Date d  = s.parse(s1);

sout(d)------------将s1以默认格式输出 即:Mon Nov 01 00:00:00 CST 2021

秒杀活动:

开始时间:2022-11-11 0:0:0

结束时间:2022-11-11 0:10:0

a用户抢购时间:2022-11-11 0:03:10

b用户抢购时间:2022-11-11 0:12:0

将所有时间

从String 转成 Date  再调用 getTime()方法获取开始时间和结束时间的毫秒值

然后再判断a和b是否在毫秒值之内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值