时间类---JDK7,8

23 篇文章 0 订阅

时间类

时间标准时间:原子钟
中国是东八区:标准时间+8小时。
计算机时间原点: 1970年1月1日 00:00:00
Date类:java.util 包 java.sql包 都有Date类

构造方法:

public Date(); 空参构造 创建Date对象,表示默认时间(此默认时间为当前电脑的时间)

public Dare(long date);带有long类型的参数,表示指定时间(从时间原点开始,过了指定毫秒的时间)

中国的电脑使用此构造方法都需要在计算时加8小时;

成员方法:

public long getTime(); 返回一个long类型的当前毫秒值

Date date = new Date();

long time = date.getTime();

sout(time);
//获取此电脑的当前时间

public void setTime(long time); 参数是long类型的毫秒值,设置从时间原点开始到指定毫秒值的时间

Date date1 = new Date();

date1.setTime(0L);

sout(date1);
//设置后的时间,过了0毫秒 还是时间原点(1970年1月1日 )。

SimpleDateFormat类:在java.text 包使用时需要导包。 可以对Date对象 格式化和解析。

严格区分大小写

y : 表示年

M: 表示月

d:表示日

H:表示小时

m:表示分钟

s:表示秒钟

//创建了Date对象

Date date = new Date();

//指定了时间格式:XXXX年XX月XX日 XX:XX:XX

//使用构造方法指定

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”);

//成员方法:

//public final String format(Date date);//参数是一个Date对象 ,返回一个String 类型的字符

//public Date parse(String source); //参数是一个字符串,返回一个Date类型的对象

String time = sdf.format(date);

sout(time); //XXXX年XX月XX日 xx:xx:xx

String s = “2020-11-11 12:00:00”;

//创建时间格式必须和字符串格式相同否则会runtime异常,格式解析异常:ParseException;

SimpleDateFormat sdf1= new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

//parse方法有一个编译异常需要抛出:throws ParseException;

Date date = sdf1.parse(s);//传递一个字符串获得一个Date类型的值

JDK8新增的时间工具类 1.8版本

Date类分为LocalDate(表示年月日) LocalTime(表示时分秒) LocalDateTime(表示年月日时分秒)

//返回一个LocalDateTime对象,打印这个对象名得到:当前时间 格式为:yyyy-MM-ddTHH:mm:ss.(后跟六位小数)

LocalDateTime now() ;//静态方法

//传入六个int 类型的整数 返回一个LocalDateTime对象,

//打印这个对象名得到:指定时间,格式为:2020-11-11T23:56:56

LocalDateTime of(2020,11,11,23,56,56); //静态方法

DateTimeFormatter类:java.time.format 包 构造方法:无, 使用类名直接调用成员方法

LocalDateTime类 :java.time 包 构造方法:无 ,使用类名直接调用成员方法

在这里插入图片描述
如果只需求获取年月日 或 时分秒 就可以把LocalDateTime对象转换成:

只获取年月日的 LocalDate : LocalDateTime对象名.toLocalDate 返回一个LocalDate对象

只获取时分秒的 LocalTime : LocalDateTime对象名.toLocalTime 返回一个LocalTime对象
在这里插入图片描述
LocalDateTime类指定格式的方法 和解析的方法
在这里插入图片描述

//String 字符串是时间格式如:
yyyy年MM月dd日 HH:mm:ss
或 yyyy-MM-dd HH:mm:ss

DateTimeFormatter pattern = DateTimeFormatter.ofpattern(String format);
在这里插入图片描述
LocalDateTime localDateTime = LocalDateTime.parse(String time,DateTimeFormatter pattern);

以下方法掌握一种即可,因为其参数可以传递负数。

传递正数参数时:增加时间

传递负数参数时:减少时间
在这里插入图片描述
以下方法掌握一种即可,因为其参数可以传递负数。

传递正数参数时:减少时间

传递负数参数时:增加时间
在这里插入图片描述
//传入一个字符串类型的规格(如:“yyyy-MM-dd HH:mm:ss”)返回一个DateTimeFormatter的对象

DateTimeFormatter pattern = DateTimeFormatter.ofpattern(String format);

//调用parse方法:

//传入一个时间的字符串.如:(“2020年11月11日 00:00:00”)和 DateTimeFormatter 类型的对象

//返回一个LocalDateTime类型的对象。 此时会出现编译时异常: 格式解析异常 throws ParseException;

LocalDateTime localDateTime = LocalDateTime.parse(String time,DateTimeFormatter pattern);

//使用LocalDateTime对象调用成员方法

//返回一个LocalDateTime的新对象

LocalDateTime newLocalDateTime = plusDays(int date);
// 时间加一天

// 使用LocalDateTime对象调用format方法,传入DateTimeFormatter对象,已经编写好的格式,

//返回一个String类型的字符串,

String time = newLocalDateTime.format(pattern);

//打印字符串即可显示一个当前指定时间加一天的时间

sout(time);
修改时间的方法:
在这里插入图片描述
Period类 :获取时间间隔的类(具体指的是年月日的间隔)
在这里插入图片描述
LocalDate ld1 = LocalDate.of(2020,1,1);

LocalDate ld2 = LocalDate.of(2048,11,11);

​ // ld1 , ld2

Period p = Period.between(参数为两个LocalDate对象); 返回Period对象

sout§; // P 28Y11M11D (28年11月11天)

sout(p.getYears());

sout(p.getMonths());

sout(p.getDays());

sout(p.toTotalMonths());

Duration类: 获取精确到毫秒(纳秒)的间隔:
在这里插入图片描述

//可以接收 LocalDateTime LocalDate LocalTime 的对象

LocalDateTime ldt1 = LocalDateTime.of(2020,11,11,12,43,43);

LocalDateTime ldt2 = LocalDateTime.of(2020,11,11,13,43,43);

​ // ldt1 , ldt2

Duration d = Duration.between(参数是两个接口对象);//返回一个Duration 的时间间隔对象

sout(d.toSeconds());

sout(d.toMillis());

sout(d.toNanos());

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值