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

Java日期类

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

Java日期类

目录

一.第一代日期类

3.SimpleDateFormat 时间格式转换

二.第二代日期类

三.第三代日期类

(2).DateTimeFormatter 格式化日期类

(3).instant时间戳


一.第一代日期类

Date类

1.获取当前系统时间

默认国外时间 需格式化转换

2.通过相应的毫秒数得到时间

3.SimpleDateFormat 时间格式转换

4.把一个格式化的String 转换成对应的 Date

应用例题代码:

public class Date01 {
    public static void main(String[] args) throws ParseException {
        //一.Date
      //1.获取当前系统时间
      //2.默认国外时间 需格式转换
        Date d1 =new Date();  //获取当前系统时间
        System.out.println("当前时间:"+d1);
       
      //3.通过相应的毫秒数得到时间
        Date d2=new Date(1112334);
        System.out.println("d2="+d2);

        //4.创建SimpleDateFormat对象。可以指定相应的格式
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
        String format =sdf.format(d1);  //format:将日期转换成指定格式的字符串
        System.out.println("当前时间:"+format);

        //5.可以把一个格式化的String 转换成对应的 Date
        String s="2000年06月30日 10:24:41 星期四";
        Date parse=sdf.parse(s);
        System.out.println("parse="+sdf.format(parse));

    }
}

运行结果如下:

当前时间:Sat Jul 02 10:45:21 CST 2022
d2=Thu Jan 01 08:18:32 CST 1970
当前时间:2022年07月02日 10:45:21 星期六
parse=Fri Jun 30 10:24:41 CST 200

二.第二代日期类

Calende类

1.Calender是抽象类,并且构造器私有

2.可以通过getInstance() 来获取实例

3.提供大量的字段和方法

4.没有提供相应的格式化的类

应用例题如下:

 
 Calendar c=Calendar.getInstance();  //1.创建日历类对象
// System.out.println("c="+c);
 //获取日历对象的日历字段
 System.out.println("年:"+c.get(Calendar.YEAR));
 //月是默认从0开始 所以+1
 System.out.println("月:"+(c.get(Calendar.MONTH)+1));
 System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
 System.out.println("小时:"+c.get(Calendar.HOUR));
 System.out.println("分:"+c.get(Calendar.MINUTE));
 System.out.println("秒:"+c.get(Calendar.SECOND));
 //自行组合时间
 System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH));

运行结果如下:

年:2022
月:7
日:2
小时:10
分:45
秒:43
2022年7月2

三.第三代日期类

前面两代日期类存在的不足分析:

JDK1.0包含一个java.util.Date类,但是它的大多数方法已经在JDK1.0引入Calender类之后被弃用。

面试:Date 、Calender存在的问题

(1).可变性:像日期和时间的类应该是不可变

(2).偏移性:Date中的年份从1990开始的。而月份从0开始

(3).格式化:只对Date有用

(4).线程不安全,不能处理闰秒(每隔两天 多出1秒)

1.LocalDate(日期/年月日)

2.LocalTime(时间/时分秒)

3.LocalDateTime(日期时间/年月日时分秒) JDK8加入

(1).使用now() 返回当前日期时间的对象

(2).DateTimeFormatter 格式化日期类

(3).instant时间戳

第三代日期更多方法

应用例题如下

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

public class LocalDateTime_{
    public static void main(String[] args) {
        
        LocalDateTime ldt= LocalDateTime.now(); //LocalDate.now()年月日; LocalTime.now() 时分秒;
        System.out.println(ldt);

        //(2) DateTimeFormatter 格式化日期
        DateTimeFormatter dtf =DateTimeFormatter.ofPattern("yyyy年MM月dd日HH时mm分ss秒");
        String format = dtf.format(ldt);
        System.out.println(format);

        System.out.println("年="+ldt.getYear());
        System.out.println("月="+ldt.getMonth());
        System.out.println("月="+ldt.getMonthValue());
        System.out.println("日="+ldt.getDayOfMonth());
        System.out.println("时="+ldt.getHour());
        System.out.println("分="+ldt.getMinute());
        System.out.println("秒="+ldt.getSecond());
        //(3) instant 时间戳

        //(4)提供plus、minus可以对当前时间进行加或减
        LocalDateTime plusDays = ldt.plusDays(700);
        System.out.println("700天后="+dtf.format(plusDays));
    }
}

运行结果如下:

2022-07-01T09:37:48.165
2022年07月01日09时37分48秒
年=2022
月=JULY
月=7
日=1
时=9
分=37
秒=48
700天后=2024年05月31日09时37分48秒

(3).instant时间戳
import java.time.Instant;
import java.util.Date;

public class Instant_ {
    public static void main(String[] args) {
       //instant 时间戳
        //(1).通过静态方法 now() 获取当前时间戳的对象
        Instant now =Instant.now();
        System.out.println(now);
        //(2).通过from 可以把Instant转换成Date
        Date date =Date.from(now);
        System.out.println(date);
        //(3).通过date的toInstant() 可以把date转换成Instant对象
        Instant instant=date.toInstant();
        System.out.println(instant);
    }
}

运行结果如下:

2022-07-01T02:11:06.715Z
Fri Jul 01 10:11:06 CST 2022
2022-07-01T02:11:06.715Z

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

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

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