栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK8中新增的时间类(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDK8中新增的时间类(一)

一、LocalDate、LocalTime、LocalDatetime

local家族各有各的用处,其中就属LocalDateTime既可以拿到时间也可以拿到日期

他们都有一个特点,就是要通过调用类中的静态方法来得到他们的对象,

而且一般都是通过调用XXX.now();来得到

import java.time.LocalDate;
import java.time.MonthDay;

public class LocalDateDemo {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();//它创建对象要用静态方法
        System.out.println(localDate);
        System.out.println(localDate.getMonth().getValue());//提取出月份
        LocalDate birthday = LocalDate.of(2001,4,23);
        MonthDay monthDay = MonthDay.from(localDate);//将月份和日期提取出来
        MonthDay birthMonth = MonthDay.of(birthday.getMonth().getValue(),birthday.getDayOfMonth());//也可以这样
        System.out.println("今天是你的生日吗?"+monthDay.equals(birthMonth));
    }
}
二、instant

它是一个时间戳,默认输出的是标准时间

import java.time.Instant;
import java.time.ZoneId;
import java.util.Date;

public class InstantDemo {
    public static void main(String[] args) {
        Instant instant1 = Instant.now();
        System.out.println(instant1);//默认打出标准时间的时间戳
        //2022-04-23T12:34:55.334439300Z
        //如果要调用系统默认的时区的话,用这个方法
        System.out.println(instant1.atZone(ZoneId.systemDefault()));//因为它返回的是ZonedDateTime,可以直接用输出语句输出
        //2022-04-23T20:39:00.407616400+08:00[Asia/Shanghai]
        //instant对象可以和date对象进行互相转换
        Date d1 = Date.from(instant1);
        System.out.println(d1);
        Instant instant2= d1.toInstant();
        System.out.println(instant2);
    }
}
三、DateTimeFormat

它是新增的时间日期格式化类,相比于原来的simpledateformat有一些好处。

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class DateTimeFormatDemo {
    //jdk8 中新增的日期格式化器
    public static void main(String[] args) {
        LocalDateTime dateTime1 = LocalDateTime.now();
        System.out.println(dateTime1);
        DateTimeFormatter f1 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss EEE a");//设置格式类型
        String s2 = f1.format(dateTime1);//它返回的类型是String
        System.out.println(s2);
        System.out.println(f1.format(dateTime1));//日期格式化器特别灵活,可以自己调用format格式化时间对象
        //也可以时间对象调用format来格式化它,都可以将时间对象格式化
        System.out.println(dateTime1.format(f1));
        //也可以用来解析字符串时间
        DateTimeFormatter f2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String st = "2009年01月08日 20:11:22";
        LocalDateTime dateTime2 = LocalDateTime.parse(st,f2);
        System.out.println(dateTime2);
        //我发现用jdk8里面新增的日期格式化对象格式化字符串时间时,字符串的时间要严格与格式相同,MM月一定要两位数,同理dd日也是如此,要不然就会报错
        //而SimpleDateFormat就不会,但是SimpleDateFormat要抛出异常
    }
}

先写到这里吧~~~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号