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开始 要想获得正确月份 要+1
        System.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);//   10

        System.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

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

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

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

 LocalDateTime localDateTime =LocalDateTime.now();
        System.out.println(localDateTime);//2024-03-10T20:30:12.089798600
        LocalDate localDate5 = localDateTime.toLocalDate();
        System.out.println(localDate5);//2024-03-10
        LocalTime 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支持的所有时区id
        System.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.917343800Z
                System.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());//相差天数 4
 System.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.mfbz.cn/a/446042.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

保持长期高效的七个法则(一)7 Rules for Staying Productive Long-Term(1)

Easily the best habit I’ve ever started was to use a productivity system.The idea is simple:organizing all the stuff you need to do (and how you’re going to do it) prevents a lot of internal struggle to get things done. 无疑&#xff0c;我曾经建立过的最好…

C++面试宝典一部分

今天整理书籍资料时&#xff0c;发现多年前打印的面试资料&#xff0c;拍照分享给大家。

ai+模型选择+过拟合和欠拟合

ai模型选择过拟合和欠拟合 1模型选择1训练误差和泛化误差2验证数据集和测试数据集3k-折交叉验证4总结 2过拟合和欠拟合1模型容量2估计模型容量3VC维4数据复杂度5总结 3代码 1模型选择 1训练误差和泛化误差 训练误差&#xff08;Training Error&#xff09;和泛化误差&#xff…

代码随想录刷题笔记-Day29

1. N皇后 51. N 皇后https://leetcode.cn/problems/n-queens/ 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数…

LVS+Keepalived 高可用负载均衡集群

一. 高可用集群的相关知识 1.1 高可用&#xff08;HA&#xff09;集群和普通集群的比较 ① 普通集群 普通的群集的部署是通过一台度器控制调配多台节点服务器进行业务请求的处理&#xff0c;但是仅仅是一台调度器&#xff0c;就会存在极大的单点故障风险&#xff0c;当该调度…

20-Java备忘录模式 ( Memento Pattern )

Java备忘录模式 摘要实现范例 备忘录模式&#xff08;Memento Pattern&#xff09;保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象 备忘录模式属于行为型模式 摘要 1. 意图 在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对…

《时间贫困》

作者&#xff1a;【英】凯茜霍姆斯 深陷困境&#xff1a;时间贫困且精疲力竭 我们生活在生产力至上的文化中&#xff0c;忙碌已经成了一种身份的象征&#xff0c;也是个人价值的一种体现。然而&#xff0c;基于我个人的经历和研究&#xff0c;我发现这种忙碌的生活状态并不能…

通过Forms+Automate+Lists+审批,实现用车申请流程

因为Sham公司目前用的用车申请流程是使用的K2系统&#xff0c;用户申请后&#xff0c;我们还需要单独另行输入Excel来汇总申请记录&#xff0c;当然K2也能导出&#xff0c;但是需要每次导出也是很麻烦的&#xff0c;而且不灵活。 刚好最近发现Forms与Automate能联通&#xff0…

GCN 翻译 - 3

3 SEMI-SUPERVISED NODE CLASSIFICATION 这里简单引入一个例子&#xff0c;利用图上信息传播的方式的一个灵活的模型&#xff0c;我们来解决一个图上节点分类的半监督问题。正如在introduction里面提到的&#xff0c;我们应用数据X和图结构的邻接矩阵锁提出的模型f(X,A)在图结…

基于51单片机的定时器时钟设计[proteus仿真]

基于51单片机的定时器时钟设计[proteus仿真] 时钟设计检测系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的定时器时钟设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe5;&…

【LeetCode】升级打怪之路 Day 14:二叉树的遍历

今日题目&#xff1a; 144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102. 二叉树的层序遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637. 二叉树的层平均值429. N 叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. …

采用 Amazon DocumentDB 和 Amazon Bedrock 上的 Claude 3 构建游戏行业产品推荐

前言 大语言模型&#xff08;LLM&#xff09;自面世以来即展示了其创新能力&#xff0c;但 LLM 面临着幻觉等挑战。如何通过整合外部数据库的知识&#xff0c;检索增强生成&#xff08;RAG&#xff09;已成为通用和可行的解决方案。这提高了模型的准确性和可信度&#xff0c;特…

6-DOF GraspNet: Variational Grasp Generation for Object Manipulation

总结&#xff1a; 使用变分自动编码器(VAE)对抓取进行采样&#xff0c;并使用基于点网的抓取评估器模型对采样的抓取进行评估和细化 摘要&#xff1a; 我们将抓取生成问题表述为 使用变分自编码器对一组抓取进行采样&#xff0c;并使用抓取评 估器模型对采样的抓取进行评估和…

2024年k8s最新版本使用教程

2024年k8s最新版本使用教程 3. YAML语言入门3.1 基本语法规则3.2 支持的数据结构3.3 其他语法 4 资源管理4.1 k8s资源查询4.2 资源操作命令4.3 资源操作方式4.3.1 命令行方式4.3.2 YAML文件方式 5 Namespace5.1 查看命名空间5.2 创建命名空间5.3 删除命名空间5.4 命名空间资源限…

Java websocket在SpringBoot中使用

Java websocket在SpringBoot中使用 导入坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>3.2.3</version> </dependency>配置websocket 新…

Linux安装MeterSphere并结合内网穿透实现公网远程访问本地服务

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

复制表

目录 复制表 将部门 30 的所有员工信息保存在 emp30 表中 将复杂查询结果创建为表 只将 emp 表的结构复制为 empnull 表 从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 复制表 严格来说&#xff0c;复制表不是复制操作&am…

AI大模型,掀起新一波智能浪潮!

AI大模型的出现&#xff0c;标志着人工智能技术迈入了一个新的阶段。这些巨大的模型不仅在规模上超越了以往任何其他人工智能系统&#xff0c;而且在性能上也取得了巨大的突破。由于其庞大的参数量和复杂的结构&#xff0c;AI大模型在各个领域展现出了强大的学习能力和推理能力…

力扣面试经典150 —— 11-15题

力扣面试经典150题在 VScode 中安装 LeetCode 插件即可使用 VScode 刷题&#xff0c;安装 Debug LeetCode 插件可以免费 debug本文使用 python 语言解题&#xff0c;文中 “数组” 通常指 python 列表&#xff1b;文中 “指针” 通常指 python 列表索引 文章目录 11. [中等] H指…

十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)

目录 一、冒泡排序&#xff1a; 二、插入排序&#xff1a; 三、选择排序&#xff1a; 四、希尔排序&#xff1a; 五、堆排序&#xff1a; 六、快速排序&#xff1a; 6.1挖坑法&#xff1a; 6.2左右指针法 6.3前后指针法&#xff1a; 七、归并排序&#xff1a; 八、桶…