Java的System、Date、Calendar、LocalDate、LocalDateTime、Instant类

1.System类

system类需要掌握的有三种方法,都是静态方法可以通过System.来调用。

  • static long currentTimeMillis() 返回以毫秒为单位的当前时间。
  • static long nanoTime() 返回最准确的可用系统计时器的当前值,以毫微秒为单位。
  • static void gc() 运行垃圾回收器。
  long time =System.currentTimeMillis();
  System.out.println(time);
  //其返回值是从1970年1月1日到现在的毫秒数
  long time=System.nanoTime();
  System.out.println(time);
  //其返回值也是从元年开始到现在的微毫秒数
  System.gc();
  //垃圾回收器

2.Date类 (第一代类)

Date类需要掌握其表示意义、构造器、一个getTime()方法和格式化与解析的过程。

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

  • .Date的构造器

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

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

    • Date的getTime()方法通过对象名调用
  • 格式化过程将“Thu Dec 19 22:43:55 CST 2019”形式转化为“2019年12月19日22时43分55秒”,符合国人阅读的形式。

  • 格式化通过创建SimpleDateFormat对象,来调用其format();方法进行格式化转化。

  • 解析是格式化的逆步骤首先也要创建SimpleDateFormat对象,来调用其parse()方法。

Date date1=new Date();
System.out.println(date1);
//输出结果为Thu Dec 19 22:43:55 CST 2019
Date date2=new Date(0L);
System.out.println(date2);
//输出结果为Thu Jan 01 08:00:00 CST 1970
long time1=date.getTime();
System.out.println(time1);
//其返回值也是从1970年1月1日到现在的毫秒数
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒SSS毫秒");
//创建SimpleDateFormat类的对象,对象调用方法format()
String time2 =sdf.format(date);//返回一个字符串类型
System.out.println(time2);
//因为上面已经创建了SimpleDateFormat,所以我们直接调用Parse()方法
Date time3=sdf.Parse("2019年12月19日23时07分10秒199毫秒");
System.out.println(time3)
//parse小括号的格式必须和SimpleDateFormat小括号里的格式一样

3.Calendar类(第二代类)

calendar类需要掌握如何获,来获取日历类的对象,获取年、月、日、时、分、秒,以及如何将相应字段重新存值,在原有的时间的基础上,相应字段增加(正负都行),最后日期时间类转换为Date类。

  • 日期类Calendar通过静态方法getInstance来获取对象,并且通过对象名调用get和set方法来,对相应的年月日字段赋值修改。

  • 日期类Calendar通过对象名getTime的方法,转化为Date类。 ```java

Calendar c=Calendar.getInstance();
//通过getInstance()方法取日历类的对象
int year=c.get(Calendar.YEAR);
//获取年数,同get和set来获取设置Calendar类的相关静态字段
int month = c.get(Calendar.MONTH) + 1;
//获取月数,这个方法必须加1,国外是从零开始算
int day = c.get(Calendar.DAY_OF_MONTH);
//获取天数,后面的时、分、秒也是差不多的就不进行详细说明
System.out.println(year + “年” + month + “月” + day );
//通过拼接输出相应的时间
c.set(Calendar.YEAR,3019);
// 将相应字段重新存值在通过get方法获取其的值并进行输出
int year=c.get(Calendar.YEAR);
c.add(Calendar.YEAR, -500);
// 在原有的时间的基础上,对字段进行增加(正负)并通过get从新获取赋值
year = c.get(Calendar.YEAR);
Date time = c.getTime();
//通过Calendar对象的getTime方法将日期类转化为Date类
System.out.println(time);


## 4.LocalDate、LocalDateTime、Instant类(第三代类)
**LocalDate、LocalDateTime、Instant类,需要掌握相对应的获取各自的对象,部分类如何获取自身的字段,以及格式化和解析的相应方式,最后是如何与Date转化。**
        

 - 三个类都是通过类名**.**上静态方法now()来实现实现的。

      

 - LocalDateTime类通过对象名点上相应的getYear()、ldt.getMonthValue()(必须时Value,其返回值才是int类),ldt.getDayOfMonth()、ldt.getHour()方法来进行获取。

      

 - 格式化和解析:格式化通过DateTimeFormatter类点上其静态方法ofPattern()(小括号里填写相应的格式,不过LoCalDateTime必须精确到时才才能做相应的格式化与解析的转变)来获取格式化对象。通过格式化对象点上format()(小括号填写要格式化的日期对象)方法来获取格式化完的字符串对象。解析通过LocalDateTime、LocalDate里面的静态parse()(小括号里填写的时,对象的解析字符串,和相应的格式化对象)来实现。

      

 - Instantl类与Date类的转化通过类名点上自身的静态方法from(),来实现。

```java
LocalDateTime ldt = LocalDateTime.now();
//通过静态方法now()
int year = ldt.getYear();
//获取年数
int month = ldt.getMonthValue();
//获取月数
int day = ldt.getDayOfMonth();
//获取天数
int hour = ldt.getHour();
//获取时数
LocalDate   ld=LocalDate.now();
//通过静态方法now()
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//获取DateTimeFormatter对象
String time=dtf.format(ld);
//将LocalDate转化 文本
LocalDate parse = LocalDate.parse("2019-12-17",dtf);
//   通过LocalDate里面parse(CharSequence text, DateTimeFormatter formatter),上述见过LocalDateTime必须精确到时才能转化与解析。
Instant     is=Instan.now();
//通过静态方法now()
Date date=is.from();
//将Instant对象 转化 Date对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值