Java之时间类1(JDK7以前)

2023-12-11 00:30
文章标签 java 时间 jdk7 以前

本文主要是介绍Java之时间类1(JDK7以前),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、Date时间类

1、时间相关知识

2、什么是Date类 

3、Date类的使用

二、SimpleDateFormat类

1、什么是SimpleDateFormat类

2、SimpleDateFormat类的作用

 3、SimpleDateFormat类的使用

三、Calender类

1、什么是Calender类

2、Calender类的使用 


一、Date时间类

1、时间相关知识

全世界的时间,有一个统一的计算标准

        格林威治/格林尼治时间(Greenwich Mean Time),简称GMT

计算核心:地球自转一天是24小时,太阳直射时为正午12点

格林尼治时间是以太阳经过格林尼治“本初子午线”的一刻为标准。但是,地球公转的速度略有差异,隔几年就得调一次时间。

2012年1月,国际通讯联盟会议上将决定是否取消用了将近130年的格林尼治标准时间。用原子钟替换。

原子钟是一种钟,它以原子共振频率标准来计算及保持时间的准确。原子钟是世界上已知最准确的时间测量和频率标准,也是国际时间和频率转换的基准,用来控制电视广播和全球定位系统卫星的讯号。 

中国标准时间:

        世界标准时间+8小时

时间单位换算

        1秒     =  1000毫秒

        1毫秒 = 1000微妙

        1微妙 = 1000纳秒

2、什么是Date类 

        Java中的Date类是一个表示日期和时间的类,它存储了自1970年1月1日00:00:00 GMT以来的毫秒数。它提供了许多方法来操作和格式化日期和时间。 

        但是需要注意的是,Date类已经过时,不再推荐在新的代码中使用它。推荐使用java.time包中的类,比如LocalDate、LocalTime、LocalDateTime等。

3、Date类的使用
public Date()创建Date对象,表示当前时间
public Date(long date)创建Date对象,表示指定时间                
public void setTime(long time)设置/修改毫秒值
public long getTime()获取时间对象的毫秒值
// 创建Date对象,表示当前时间
Date d = new Date();
System.out.println(d);//创建Date对象,表示指定时间
Date d = new Date(0L);
System.out.println(d); // Thu Jan 01 08:00:00 CST 1970// 设置/修改毫秒值
d.setTime(1000L);
System.out.println(d); // Thu Jan 01 08:00:01 CST 1970// 获取时间对象的毫秒值
long time = d.getTime();
System.out.println(time); // 1000

二、SimpleDateFormat类

1、什么是SimpleDateFormat类

        Java中的SimpleDateFormat类可以将日期对象格式化成指定模式的字符串,也可以将字符串解析成日期对象。

        该类可以使用一些预定义的模式,例如“yyyy-MM-dd HH:mm:ss”,或者可以自定义模式。它还可以设置Locale以适应不同的语言环境。

        y  年  , M  月  ,d  日 ,H  时 ,m  分 ,s  秒

2、SimpleDateFormat类的作用
  • 格式化:把时间变成我们喜欢的格式。
    • 2023-12-10
    • 2023/12/10
    • 2023年12月10日
  • 解析:把字符串表示的时间变成Date对象
 3、SimpleDateFormat类的使用
public SimpleDateFormat()构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用指定格式
public final String format(Date date)格式化(日期对象 -> 字符串)
public Date parse(String source)解析(字符串 -> 日期对象)
//构造一个SimpleDateFormat,使用默认格式
SimpleDateFormat sdf = new SimpleDateFormat();
String str = sdf.format(new Date());
System.out.println(str);//构造一个SimpleDateFormat,使用指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
String str = sdf.format(new Date());
System.out.println(str);// 解析(字符串 -> 日期对象)
// 创建对象的格式要跟字符串中的格式完全一致,否则会报错
String str = "2023-12-10";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(str);
System.out.println(date);

三、Calender类

1、什么是Calender类

        Java中的Calendar类是一个抽象类,提供了用于操作日期和时间的方法。它是Java日期和时间API的一部分,可以处理日历字段,例如年、月、日期、小时和分钟等。Calendar类还可以执行基本的时间算术运算,例如添加和减去日期和时间。

        Calender是一个抽象类,不能直接创建对象,需要使用它的静态方法getInstance()来创建

2、Calender类的使用 
public final Date getTime()获取日期对象
pulbic final setTime(Date date)给日历设置日期对象
public long getTimeInMillis()拿到时间毫秒值
public void setTimeInMillis(long millis)给日历设置时间毫秒值
public int get(int field)取日历中的某个字段信息
public void set(int field,int value)修改日历的某个字段信息
public void add(int field,int amount)为某个字段增加/减少指定的值

// 获取Calendar对象
// 底层原理:
// 会根据系统的不同时区来取不同的日历对象,默认表示当前时间。
// 把会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中
// 细节:
// 月份:范围 0 ~ 11 如果获取出来的是 0 .那么实际上是 1 月。
// 星期:在老外的眼里,星期日是一周中的第一天
//      1(星期日)  2(星期一)  3 (星期二) 4(星期三)  5(星期四)  6(星期五)  7(星期六)
Calendar c = Calendar.getInstance();
System.out.println(c);// 获取日期对象给
Date date = c.getTime();
System.out.println(date);// 日历设置日期对象
Date d = new Date(0);
c.setTime(d);
System.out.println(c);// 拿到时间毫秒值
long time = c.getTimeInMillis();
System.out.println(time);// 给日历设置时间毫秒值
c.setTimeInMillis(1000L);
System.out.println(c);// 取日历中的某个字段信息
//int year = c.get(1);
int year = c.get(Calendar.YEAR);
System.out.println(year);// 修改日历的某个字段信息
c.set(Calendar.YEAR,2000);
System.out.println(c);// 为某个字段增加/减少指定的值
// 正数增加,负数减少
c.add(Calendar.YEAR,10);
System.out.println(c);c.add(Calendar.YEAR,-5);
System.out.println(c);

这篇关于Java之时间类1(JDK7以前)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/478836

相关文章

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分