Java:时间日期类

news2024/11/26 4:35:14

文章目录

  • Date
  • Calendar
  • Date/Time API
    • LocalDate
    • LocalTime
    • LocalDateTime
    • ZonedDateTime
  • 功能
    • 获取标准时间
  • 参考文献

Date

同样位于java.util包下。

在java中,获取时间最简单的方式就是直接实例化Date类。

以自定义格式,取当前的时间日期:

Date date = new Date();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");
System.out.println(dateFormat.format(date));

之前可以用Date类来获取当前日期和时间的结构信息,比如说:

Date date = new Date();
System.out.println(date.toLocaleString());
System.out.println(date.getDay());  // 当前星期几
System.out.println(date.getYear());  // 自从1900之后,经过了多少年
System.out.println(date.getMonth());  //当年第几个月,从0开始
System.out.println(date.getDate());  // 当前日
System.out.println(date.getSeconds());  // 当前秒
System.out.println(date.getMinutes());  // 当前分钟
System.out.println(date.getHours());  // 当前小时

不过以上API都是属于废弃API,看描述是从1.1开始就废弃掉了可能。

Calendar

Calendar类位于java.util包下,是Java7里比较新的一种获取时间的方式。

是专门用来转换特定时刻和日历字段之间的日期和时间。

之前比较常用的如new Date().getHours()等,已经属于废弃方法了,官方在文档里明确推荐使用Calendar类来代为替换。

分别取年月日时分秒:

Calendar cal=Calendar.getInstance();      
int y=cal.get(Calendar.YEAR);      
int m=cal.get(Calendar.MONTH);      
int d=cal.get(Calendar.DATE);      
int h=cal.get(Calendar.HOUR_OF_DAY);      
int mi=cal.get(Calendar.MINUTE);      
int s=cal.get(Calendar.SECOND);      
System.out.println("现在时刻是"+y+"年"+m+"月"+d+"日"+h+"时"+mi+"分"+s+"秒");

以自定义格式,取当前的时间日期:

Calendar calendar= Calendar.getInstance();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");
System.out.println(dateFormat.format(calendar.getTime()));

或者直接sout下面的:

new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(Calendar.getInstance().getTime())	

注意,format里面的hh是12小时制,如果想看24小时制,那用HH

Date/Time API

Java8提供了一个全新的API,用来替换Java.util.DateJava.util.Calendar

其提供了多个类,方便我们操作时间,包括:

  • LocalDate
  • LocalTime
  • LocalDateTime
  • ZonedDateTime

LocalDate

位于java.time包下。

只显示日期,不显示时间,可以使用format来控制格式。

打印当前日期:

LocalDate date = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(formatter.format(date));		// 2023-01-16

LocalTime

同样位于java.time包下。

与LocalDate相反,LocalTime只能获取时间,而不能获取日期。

打印当前时间:

LocalTime time = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(formatter.format(time));		// 15:42:19

LocalDateTime

同时获取日期和时间,使用方式基本一致。

打印当前的日期和时间:

LocalDateTime dt = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(formatter.format(dt));	// 2023-01-16 15:46:48

ZonedDateTime

获取时间和日期的结构化字段

ZonedDateTime ZonedDateTime = ZonedDateTime.now();创建之后,可以通过以下方法访问实例的日期和时间字段:

在这里插入图片描述

日期和时间的计算方法:

在这里插入图片描述

功能

获取标准时间

可以通过System.currentTimeMillis() 来获取标准时间的时间戳,据说这个值是不受时区影响的纯净值。暂时存疑,因为这里我没验证过。

如:1673861700672

也可以把时间戳转换成我们可以理解的正常形式,但是这个过程中系统会自动加上时区:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(System.currentTimeMillis());
System.out.println(formatter.format(date));

参考文献

  1. java 获取当前时间的三种方法
  2. Java如何获取当前日期和时间?
  3. JAVA中获取当前时间的写法
  4. calendar的使用。以及如何获取某月份最后一天的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试入门指南之小白该如何学习渗透?

前言: 内容都是精华,如果想要入安全的行,强烈建议仔细阅读。 目录: 渗透测试是什么? 学习渗透测试的战略方针是什么? 学习渗透测试的具体方法是什么? 遇到的各种疑难杂症怎么解决&#xf…

践行公益担当 | 关爱留守儿童,暖到“心理”

农民在中国各个时代都扮演着十分重要的角色,为中国的发展做出了卓越的贡献。随着经济的发展,农民为了改善生活而大规模的进城打工,“留守儿童”成为一个新的社会问题,开始在农村甚至部分城市出现。 全国“留守儿童”达6102.55万&…

从0到1精通自动化测试,pytest自动化测试框架,测试用例setup和teardown(三)

目录 一、前言 二、用例运行级别 三、函数式 1、setup_function / teardown_function 2、setup_module / teardown_module 四、类和方法 五、函数和类混合 一、前言 学过 unittest 的都知道里面用前置和后置 setup 和 teardown 非常好用,在每次用例开始前和…

计算机组成原理-复习大纲(期末版)

目录 第一章 计算机系统概论 1.1 冯诺依曼型计算机 1.2 计算机的硬件组成 第二章 运算方法和运算器 2.1 ieee754标准、32位浮点数 2.2 补码运算 2.3 运算器的基本结构形式 第三章 存储系统 3.1 主存与cache的地址映射 3.1.1 全相联映射方式 3.1.2 直接映射方式 3.1.3 组相…

全网最细,web自动化测试实战场景(滚动元素的滚动操作)直接上干g货......

前言 使用 selenium 进行 web 自动化测试对我们来说是个常规操作。用了很多次后,我们经常会抱怨 selenium 封装的操作实在是太少了。 比如说 selenium 没有对页面的滚动提供丰富 API , 有的只有一个孤零零的 location_once_scrolled_into_view 方法,把…

css 解决多张图片显示时出现的空白间隙问题

1、出现的间隙 在后端设置富文本时,添加了多张图片,但是到前台展示时,每2张图片直接都会多出一个间隙; 2、空白间隙产生的原因 在网上查阅资料时,发现是由于图片设置了display: inline-block;属性,使图…

任意分频器电路设计

目录 任意分频器电路设计 1、任意偶数分频器电路设计 1.2、实验任务 1.3、程序设计 1.3.1、代码如下: 1.3.2、编写仿真 TB 文件 2、任意奇数分频器电路设计 2.1、实验任务 2.2、程序设计 2.2.1、奇数分频电路代码 2.2.2、编写仿真 TB 文件 2.2.3、仿真验…

关于前端项目安全问题的一些思考

1.路由守卫,本地路径与本地存储加密后的该用户所有能访问的的路径列表对比,是否有权限,这个要搞个一级页面-二级页面三级页面这种记录下来,后台管理员开启后赋予用户访问某些页面的权限,即能打开相关菜单的权限&#x…

【吴恩达老师《机器学习》】课后习题2之【逻辑回归(logistic_regression)】

逻辑回归-线性可分 用于解决输出标签y为0或1的二元分类问题 判断邮件是否属于垃圾邮件?银行卡交易是否属于诈骗?肿瘤是否为良性?等等。 案例:根据学生的两门学生成绩,建立一个逻辑回归模型,预测该学生是否会被大学录…

卷积码编码器的结构与表示

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 卷积码基础卷积码的…

Oracle数据库startup mount时的报错处理(ORA-01078LRM-00109)

安装监听 Disconnected [oraclerac1 ~]$ netcaOracle Net Services Configuration:[oraclerac1 ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Tue Jun 20 22:50:36 2023Copyright (c) 1982, 2013, Oracle. All rights reserved.Connected to an idle …

学习adaboost(三,第二次迭代,c#实现)

我们改进了第一次迭代:第二次迭代如下:因为三个弱分类器都是犯了3次错误,我们故意选了y>6.5,标签1,else,标签-1;第一个弱分类器已经选了,再选一次没意义,不会有任何进展&#xff…

搞钱!如何拿下奖金534万的全国人工智能大赛?

嗨咯,大家好,我是K同学啊! 介于最近训练营中经常有同学问我,有哪些比较好的知识变现渠道,这几天整理出了一个个人认为还不错的关于深度学习方面的大赛(就奖金比较多而已)分享给大家。 攻略 | …

prisma 结合 mongodb 查询地理空间坐标,实现 “附近的人”功能

前言:我们创建一个集合,添加测试数据,并执行 mongodb 的地理空间查询,返回需要的数据。 1、通过schema.prisma, 创建 store 集合 2、通过 prisma/client ,插入 几条测试数据 // 构造测试数据createList: async () >…

CMIP6数据处理方法与典型案例分析

气候变化关系到农业、生态系统、社会经济和人类生存与发展,是当今世界关注的重点问题之一。IPCC(Intergovernmental Panel on Climate Change)第6次评估报告指出,自 20 世纪 50 年代以来,从全球平均气温和海温升高、大…

Seata TCC 模式下解决幂等、悬挂、空回滚问题 | Spring Cloud56

一、前言 通过以下系列章节: docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 Seata XA 模式理论学习、使用…

antd-vue - - - - - date-picker组件在非本地不好使?无法切换日期?

date-picker组件在非本地不好使?无法切换日期? 1.问题描述2.问题原因 & 解决办法 离离原上谱,真的是离了大谱 记录一个深深的踩坑记录!!! 选择日期,肯定要选择ui组件的date-picker&#xf…

tensorflow基础知识

计算图的理解 ref: https://zhuanlan.zhihu.com/p/344846077 计算图模型由节点(nodes)和线(edges)组成,节点表示操作符/算子Operator,线表示计算间的依赖。实线表示有数据传递的依赖,传递的数…

【LeetCode】HOT 100(17)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

three.js中通过gsap动画库实现物体的动画

一、什么是gsap GSAP(GreenSock Animation Platform)是一个JavaScript动画库,由GreenSock公司开发,用于在Web应用程序中创建高性能动画。 使用GSAP可以通过一些简单的动画操作来实现复杂的动画效果,例如TweenLite、T…