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

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。