首页 > 编程语言 >Java入门:20.Calendar类与新日期类的使用

Java入门:20.Calendar类与新日期类的使用

时间:2024-11-30 15:28:29浏览次数:9  
标签:Java 日期 LocalDateTime Date 20 Calendar LocalDate day

 1 Calendar日历类

* 可以针对于日期中的每一个日期项,进行操作
  * 年, 月, 日, 时,分, 秒,毫秒,星期

* Calendar对象创建

 Calendar time = Calendar.getInstance(); //默认表示当前系统时间

  * Calendar对象与Date对象之间的转换

 //Date --> Calendar
  Calendar time = Calendar.getInstance();
  time.setTime(Date date) ;// 设置一个新的日期,表示date对应的Calendar形式
  
  //Calendar --> date
  Date date = time.getTime();

* Calendar对象的常用方法

  Calendar time = Calendar.getInstance();
  //针对于某一个日期项进行设置
  time.set(Calendar.DAY_OF_MONTH,10) ;
  time.get(Calendar.DAY_OF_MONTH);
  time.add(Calendar.DAY_OF_MONTH,100) ;
  
  time1.before(time2) ;
  time1.after(time2) ;

2 jdk新日期类

  • LocalDate , LocalTime , LocalDateTime

  • DateTimeFormatter

  • Period , Duration , ChronoUnit

  • ZoneId

  • Instant, ZoneDateTime (新老日期转化)

2.1 新日期的创建

  • LocalDate , LocalTime , LocalDateTime 表示日期时间

  • LocalDateTime.now();  //获得当前系统时间的日期对象 LocalDateTime.of(); //获得指定时间的日期对象

2.2 获得日期信息

LocalDateTime today = LocalDateTime.now();
today.get系列(); //获得不同的日期项

2.3 日期格式处理

//LocalDateTime默认的日期格式  yyyy-MM-ddTHH:mm:ss
LocalDateTime day = LocalDateTime.parse("1982/02/23 03:03:03");
System.out.println(day);
​
​
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime day2 = LocalDateTime.parse("1982/02/23 03:03:03",format);
System.out.println( day2.format(format) );

2.4 日期的计算

一个日期加减数字

LocalDate day = LocalDate.of(1987, 2, 23);
//        LocalDate r = day.plus(3, ChronoUnit.DAYS);
//        LocalDate r = day.plusDays(10);
LocalDate r = day.minus(1,ChronoUnit.MONTHS);
System.out.println(r);
​
Period p = Period.of(0, 1, 15);
LocalDate r = day.plus(p);

两个日期间隔

//间隔时间较长, 以年月日为间隔单位
LocalDate today = LocalDate.now();
LocalDate birthday = LocalDate.of(1987,2,23);
​
Period p = Period.between(birthday,today);
System.out.println(p);
System.out.println(p.getYears());
​
long days = ChronoUnit.YEARS.between(birthday, today);
System.out.println(days);
//间隔时间较短,以时分秒为单位
LocalDateTime today = LocalDateTime.now();
LocalDateTime birthday = LocalDateTime.of(1987,2,23,3,3,3);
​
Duration between = Duration.between(birthday, today);
System.out.println(between.toDays());

2.5 新老日期类转化

  • 需要Instant , ZoneDateTime , ZoneId 配合完成

//Date ---> LocalDateTime
Date date = new Date();
​
Instant instant = date.toInstant();
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
​
LocalDateTime day = zonedDateTime.toLocalDateTime();
System.out.println(day);


//LocalDateTime ---> Date
LocalDateTime birthday = LocalDateTime.of(1987, 2, 23, 3, 3, 3);
​
ZonedDateTime zonedDateTime = birthday.atZone(ZoneId.systemDefault());
Instant instant = zonedDateTime.toInstant();
​
Date date = Date.from(instant);
System.out.println(date);
  

那么今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~

标签:Java,日期,LocalDateTime,Date,20,Calendar,LocalDate,day
From: https://blog.csdn.net/a2018204587/article/details/144155604

相关文章

  • 德普微 DP8205 SOT23-6 Dual N-Channel Enhancement Power MOSFET
    ......
  • 德普微 DP8205 TSSOP-8 Dual N-Channel Enhancement Power MOSFET
    ......
  • 德普微一级代理 DP050N15BGN2 DP050N15PGN2 TO263/TO220 DPMOS N-MOSFET 150V148A 4.5
    ......
  • Adobe Photoshop 2025版安装教程及最低配置需求
    版本处理器操作系统内存(RAM)显卡显示器分辨率硬盘空间Photoshop2025多核Intel®、AMD或WinARM处理器Windows1064位(版本22H2)或更高版本8GB支持DirectX12的GPU(功能级别12_0或更高),1.5GBGPU内存1280x800,100%UI缩放10GB可......
  • 20222425 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容MetasploitFramework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新......
  • docker可用国内镜像源2024.11.30
    系统版本/proc/versionLinuxversion5.15.0-126-generic(buildd@lcy02-amd64-052)(gcc(Ubuntu9.4.0-1ubuntu1~20.04.2)9.4.0,GNUld(GNUBinutilsforUbuntu)2.34)#136~20.04.1-UbuntuSMPThuNov1416:38:05UTC2024docker版本Dockerversion27.3.1,buildc......
  • P1135 奇怪的电梯 JAVA题解
    题目描述呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第 ii 层楼(1≤i≤N1≤i≤N)上有一个数字 KiKi​(0≤Ki≤N0≤Ki​≤N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例......
  • P2658 汽车拉力比赛 JAVA题解
    package篮桥杯.d;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.StreamTokenizer;importjava.util.LinkedList;importjava.util.Queue;publicclassMain{//自定义的输入类,比普通Scanner快两......
  • Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
    背景事件:近日,优衣库宣布不再使用新疆棉花,这一举措引发了广泛的社会讨论。消费者的反应和舆论的压力,让优衣库的决策迅速影响了市场和品牌形象。类似的,许多系统也面临着需要根据外部事件或状态的变化,做出即时反应的需求。在软件设计中,观察者模式(ObserverPattern)就是为了处理这种......
  • 如何让Java的线程彼此同步?
    在Java中,线程同步是一个重要的概念,用于确保多个线程在访问共享资源时能够保持数据的一致性和正确性。Java提供了多种线程同步机制,以下是具体的同步方法:一、使用synchronized关键字synchronized同步方法:即在方法声明中使用synchronized关键字。当一个线程访问某个对象的synchr......