Day6 java 常用API

文章目录

  • 1、Calendar
    • 1.1 Calendar日历对象
  • 2、JDK8 之后新增的时间类
    • 2.1 LocalDate、LocalTime 、LocalDateTime
    • 2.2 ZoneId 、ZoneIdTime
    • 2.3 Instant
    • 2.4 DateTimeFormatter
    • 2.5 Period
    • 2.6 Duration

1、Calendar

在了解calendar之前,先用SimpleDateFormat 写一个小例子
在这里插入图片描述

 String start="2023年11月11日 0:0:0";String end="2023年11月11日 0:10:0";String xj="2023年11月11日 0:01:18";String xp="2023年11月11日 0:10:57";//把字符串转换为日期对象SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date startdate = simpleDateFormat.parse(start);Date enddate = simpleDateFormat.parse(end);Date xjdate = simpleDateFormat.parse(xj);Date xpdate = simpleDateFormat.parse(xp);long startl = startdate.getTime();//获得毫秒值long endl = enddate.getTime();long xjl = xjdate.getTime();long xpl = xpdate.getTime();//进行判断if(xjl>=startl&&xjl<=endl){System.out.println("恭喜您秒杀成功~~");//执行}else {System.out.println("恭喜您秒杀失败~~");}if(xpl>=startl&&xpl<=endl){System.out.println("恭喜您秒杀成功~~");}else {System.out.println("恭喜您秒杀失败~~");//执行}

1.1 Calendar日历对象

如果我们想要改变当前日期,改变年/月/日 如果使用日期对象就比较麻烦 需要先转为日期对象 再获得毫秒值 再相加 再转为data对象。

使用Calendar就比较方便
注意:Calendar是一个抽象类 我们不能实例化,但是我们可以通过Calendar.getInstance()方法获得一个calendar对象。
常用方法:
在这里插入图片描述

  Calendar instance = Calendar.getInstance();//可以直接获得calendar中的信息 包括年月日等  月份从0开始 要想获得正确月份 要+1System.out.println(instance);//java.util.GregorianCalendar[time=1710061551229,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=31,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2024,MONTH=2,WEEK_OF_YEAR=11,WEEK_OF_MONTH=3,DAY_OF_MONTH=10,DAY_OF_YEAR=70,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=5,SECOND=51,MILLISECOND=229,ZONE_OFFSET=28800000,DST_OFFSET=0]//获得Date对象Date time = instance.getTime();System.out.println(time);//Sun Mar 10 17:04:28 CST 2024//获取毫秒值System.out.println(instance.getTimeInMillis());//1710061468899//获得当前属于该月的第一几天int i = instance.get(Calendar.DATE);//   10System.out.println(i);//修改某个月instance.set(Calendar.YEAR,2000);//一旦修改 后续的日历对象都会被修改 不会保存原来的值了System.out.println(instance);//增加1年instance.add(Calendar.YEAR,1);System.out.println(instance);//减少一年instance.add(Calendar.YEAR,-1);System.out.println(instance);Date time1 = instance.getTime();System.out.println(time1);//Fri Mar 10 17:04:28 CST 2000

2、JDK8 之后新增的时间类

在这里插入图片描述

为什么要学新增的时间类?
1、jdk8之前的时间类很多都被淘汰了,且使用不方便
2、线程不安全
3、都是毫秒级,没有纳秒级,不够准确
4、都是可变对象,不能保存之前的
比如

 Date date=new Date();System.out.println(date.getYear());//124它的源代码:public int getYear() {return normalize().getYear() - 1900;}
//我们可以看出来 必须要+1900才是现在的年份

2.1 LocalDate、LocalTime 、LocalDateTime

在这里插入图片描述
常用方法其实是差不多的,只不过是含有的内容不同

//获得当前的dateLocalDate localDate=LocalDate.now();System.out.println(localDate);//2024-03-10//获得具体的年月日等信息  get...System.out.println(localDate.getMonth().getValue());//3System.out.println(localDate.getYear());//2024System.out.println(localDate.getDayOfMonth());//10//修改某个信息 并且会返回新的对象 原始对象仍然保存  with...LocalDate localDate1 = localDate.withDayOfMonth(11);//2024-03-11System.out.println(localDate1);LocalDate localDate2 = localDate.withYear(2024);//2024-03-10System.out.println(localDate2);//某个信息 加多少 plus...LocalDate localDate3 = localDate.plusMonths(1);//2024-04-10System.out.println(localDate3);//某个信息减多少LocalDate localDate4 = localDate.minusDays(1);//2024-03-09System.out.println(localDate4);//获得指定日期的 LocalDate对象LocalDate of = LocalDate.of(2024, 5, 2);//2024-05-02System.out.println(of);//判断 日期是否相同 或是否 在其之前或者之后System.out.println(localDate1.equals(localDate2));//falseSystem.out.println(localDate2.isBefore(localDate3));//trueSystem.out.println(localDate3.isAfter(localDate4));//true

LocalDateTime 有一个不同的一点就是它可以把其对象转换为LocalDate或者LocalTime

 LocalDateTime localDateTime =LocalDateTime.now();System.out.println(localDateTime);//2024-03-10T20:30:12.089798600LocalDate localDate5 = localDateTime.toLocalDate();System.out.println(localDate5);//2024-03-10LocalTime localTime = localDateTime.toLocalTime();System.out.println(localTime);//20:30:12.089798600

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 ZoneId 、ZoneIdTime

  //时区信息 我们是东八区ZoneId zoneId=ZoneId.systemDefault();System.out.println(zoneId);  //System.out.println(zoneId.getId());//和上边一样 ZoneId 重写了tostring 就是使用的getid()方法//获取java支持的所有时区idSystem.out.println(ZoneId.getAvailableZoneIds());//[Asia/Aden, America/Cuiaba, Etc/GMT+9, Etc/GMT+8, Africa/Nairobi, America/Marigot, Asia/Aqtau, Pacific/Kwajalein, America/El_Salvador, Asia/Pontianak, Afri等...//把某个时区id 转为封装为Zondid对象ZoneId of1 = ZoneId.of("America/New_York");System.out.println(of1);//America/New_York//带时区的时间//获取某个时区的ZoneDateTime对象.System.out.println(ZonedDateTime.now());ZonedDateTime now = ZonedDateTime.now(of1);//2024-03-10T20:40:02.767630300+08:00[Asia/Shanghai]System.out.println(now); //2024-03-10T08:40:02.767630300-04:00[America/New_York]  带时区信息的 纽约与中国差12h//世界标准时区时间System.out.println(ZonedDateTime.now(Clock.systemUTC()));//2024-03-10T12:41:32.318277500Z

在这里插入图片描述

2.3 Instant

在这里插入图片描述

Instant now = Instant.now();
System.out.println(now);//注意 返回的是标准时区时间 而不是我们系统的时间 差8h //2024-03-10T12:48:45.917343800ZSystem.out.println(now.getEpochSecond());//秒数 1710074925
System.out.println(now.getNano()); //纳秒数 917343800

2.4 DateTimeFormatter

在这里插入图片描述

 DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime=LocalDateTime.now();
//格式化时间
String format =dateTimeFormatter.format(localDateTime);
System.out.println(format);  //2024-03-10 20:54:07//格式化时间的另一种方式String format1=localDateTime.format(dateTimeFormatter);
System.out.println(format1);//2024-03-10 20:55:14//解析时间
String s="2024-03-10 20:57:03";
LocalDateTime parse = LocalDateTime.parse(s, dateTimeFormatter);
System.out.println(parse); //2024-03-10T20:57:03           System.out.println(dateTimeFormatter.parse(s));

2.5 Period

在这里插入图片描述

 LocalDate of = LocalDate.of(2000, 2, 1);LocalDate of1 = LocalDate.of(2001, 3, 5);Period between = Period.between(of, of1);
System.out.println(between.getDays());//相差天数 4System.out.println(between.getMonths()); //1

2.6 Duration

在这里插入图片描述

LocalDateTime of2 = LocalDateTime.of(2000, 6, 11, 9, 2, 10, 1);
LocalDateTime of3 = LocalDateTime.of(2001, 8, 11, 9, 2, 10, 1);
Duration between1 = Duration.between(of2, of3);
System.out.println(between1.toDays());//天 426              
System.out.println(between1.toHours());//小时 102240

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux快速入门学习-2 Linux安装环境准备

文章目录 Linux发展前景及就业形势Windows操作系统简介硬盘分区简介Linux安装环境准备Linux系统安装图解 Linux发展前景及就业形势 权威部门统计&#xff0c;未来几年内我国软件行业的从业机会十分庞大&#xff0c;中国每年对IT软件人才的需求将达到200万人左右。而对于Linux专…

Docker进阶:深入理解 Dockerfile

Docker进阶&#xff1a;深入理解 Dockerfile 一、Dockerfile 概述二、为什么要学习Dockerfile三、Dockerfile 编写规则四、Dockerfile 中常用的指令1、FROM2、LABEL3、RUN4、CMD5、ENTRYPOINT6、COPY7、ADD8、WORKDIR9、 ENV10、EXPOSE11、VOLUME12、USER13、注释14、ONBUILD 命…

Java面试题之JVM

JVM整体架构 堆 minor gc&#xff1a;回收年轻代的垃圾对象 full GC&#xff1a;回收整个堆的垃圾对象 当full GC也回收不了就会OOM STW运行时会停掉所有用户线程 JVM调优的真正目的就是为了减少STW的次数 为什么会有STW&#xff1a;避免非垃圾对象发生变化&#xff0c;暂…

【深度学习笔记】优化算法——Adam算法

Adam算法 &#x1f3f7;sec_adam 本章我们已经学习了许多有效优化的技术。 在本节讨论之前&#xff0c;我们先详细回顾一下这些技术&#xff1a; 在 :numref:sec_sgd中&#xff0c;我们学习了&#xff1a;随机梯度下降在解决优化问题时比梯度下降更有效。在 :numref:sec_min…

Linux-socket套接字

前言 在当今数字化时代&#xff0c;网络通信作为连接世界的桥梁&#xff0c;成为计算机科学领域中至关重要的一部分。理解网络编程是每一位程序员必备的技能之一&#xff0c;而掌握套接字编程则是深入了解网络通信的关键。本博客将深入讨论套接字编程中的基本概念、常见API以及…

GitOps实践之Argo CD (2)

argocd 【-1】argocd可以解决什么问题? helm 部署是手动的?依赖流水线。而有时候仅仅更新一个小东西,流水线跑好久,CD真的不应该和CI耦合。不同环境的helm配置不同,手动修改问题多,可以用git管理起来,例如分不同环境用目录区分。argocd创建应用可以不通环境部署到不同集…

Langchain-Chatchat本地搭建ChatGLM3模型和提取PDF内容

文章目录 1、软件要求2、安装CUDA2.1、安装gcc2.2、安装CUDA 3、安装Anaconda33.1、下载Anaconda33.2、创建python虚拟环境 4、部署系统4.1、下载源码4.2、安装依赖4.3、下载模型4.4、初始化配置和知识库4.4.1、初始化配置4.4.2、初始化知识库 4.5、运行4.6、运行4.6.1、启动4.…

C语言编译成库文件的要求

keil编译成库文件 在Keil中&#xff0c;将C语言源文件编译成库文件通常需要进行以下步骤&#xff1a; 创建一个新的Keil项目&#xff0c;并将所需的C语言源文件添加到该项目中。 在项目设置中配置编译选项&#xff0c;确保生成的目标文件符合库文件的标准格式。 编译项目&…

基于PHP的餐厅管理系统APP设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 MVC 3 1.2 ThinkPHP 3 1.3 MySQL数据库 3 1.4 uni-app 4 1.5 本章小结 4 2 系统分析 5 2.1 功能需求 5 2.2 用例分析 7 2.3 非功能需求 8 2.4 本章小结 8 3 系统设计 9 3.1 系统总体设计 9 3.2 系统详细设计 10 3.3 本章小…

基于Java+springboot+VUE+redis实现的前后端分类版网上商城项目

基于Java springbootVUEredis实现的前后端分类版网上商城项目 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Ajax、Axios、Vue、Element与其案例

目录 一.Ajax 二.Axios 三.Vue 四.Element 五.增删改查案例 一.依赖&#xff1a;数据库&#xff0c;mybatis&#xff0c;servlet&#xff0c;json-对象转换器 二.资源&#xff1a;elementvueaxios 三.pojo 四.mapper.xml与mapper接口 五.service 六.servlet 七.html页…

css flex 布局换行

默认使用display: flex;是不换行的&#xff0c;只需要加上flex-wrap: wrap;就行了&#xff0c;效果图 .app-center {display: flex;flex-wrap: wrap;justify-content:flex-start; } 通过上面我们发现虽然时间换行了&#xff0c;但是每行的边距不一样 加上这个就行了&#xff…

微信小程序-分包

分包 1.什么是分包 分包指的是把一个完整的小程序项目&#xff0c;按照需求划分为不同的子包&#xff0c;在构建时打包成不同的分包&#xff0c;用户在使用时按需进行加载。 2.分包的好处 对小程序进行分包的好处主要有以下两点&#xff1a; 可以优化小程序首次启动的下载时间…

二维码图案样式怎么改?二维码改样式的简单方法

怎么修改二维码图案的样式呢&#xff1f;一般情况下生成的二维码图案大多是黑白的普通样式&#xff0c;那么很多人会为了提高展现效果或者增加辨识度&#xff0c;需要修改二维码的图案样式、添加logo、文字等其他内容&#xff0c;那么面对这样的需求该如何解决呢&#xff1f;下…

docker学习(十四)docker搭建私服

docker私服搭建&#xff0c;配置域名访问&#xff0c;设置访问密码 启动registry docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registrydocker pull hello-world docker tag hello-world 127.0.0.1:5000/hello-world docker push 127.0.0.1:5000…

SQL中如何添加数据

SQL中如何添加数据 一、SQL中如何添加数据&#xff08;方法汇总&#xff09;二、SQL中如何添加数据&#xff08;方法详细解说&#xff09;1. 使用SQL脚本&#xff08;推荐&#xff09;1.1 在表中插入1.1.1 **第一种形式**1.1.2 **第二种形式**SQL INSERT INTO 语法示例SQL INSE…

Keepalived+LVS构建高可用集群

目录 一、Keepalive基础介绍 1. Keepalive与VRRP 2. VRRP相关技术 3. 工作原理 4. 模块 5. 架构 6. 安装 7. Keepalived 相关文件 7.1 配置组成 7.2 全局配置 7.3 VRRP实例配置&#xff08;lvs调度器&#xff09; 7.4 虚拟服务器与真实服务器配置 二、Keepalived…

IDEA管理Git + Gitee 常用操作

文章目录 IDEA管理Git Gitee 常用操作1.Gitee创建代码仓库1.创建仓库1.点击新建仓库2.完成仓库信息填写3.创建成功4.管理菜单可以修改这个项目的设置 2.设置SSH公钥免密登录基本介绍1.找到.ssh目录2.执行指令 ssh-keygen3.将公钥信息添加到码云账户1.点击设置2.ssh公钥3.复制.…

软件开发服务合同套用模板

一、合作方式 二、合同标的 三、开发进度及软件成果交付 四、开发费用 五、付款结算方式 六、知识产权条款 七、双方的权利和义务 八、验收 九、售后服务支持 十、培训 十一、保密责任 十二、不可抗力 十三、争议的解决 十四、其它事项 软件开发全套资料获取下载…

python之海龟绘图

海龟绘图&#xff08;turtle&#xff09;是一个Python内置的绘图库&#xff0c;也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式&#xff0c;模拟一只小海龟在屏幕上爬行&#xff0c;而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20…