Day6 java 常用API

news2024/11/18 23:41:47

文章目录

  • 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.coloradmin.cn/o/1507799.html

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

相关文章

企企通解决方案总监汤水卿:打造企业间接采购数字化平台,赋能供应链高效跃进新篇章

3月5日&#xff0c;国务院总理李强在政府工作报告中提出&#xff0c;制定支持数字经济高质量发展政策&#xff0c;积极推进数字产业化、产业数字化&#xff0c;促进数字技术和实体经济深度融合。 近日&#xff0c;企企通受邀参加了2024华南采购峰会&#xff0c;与各行各业的采购…

C#/.NET/.NET Core拾遗补漏合集(持续更新)

前言 在这个快速发展的技术世界中&#xff0c;时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节&#xff0c;以帮助大家更全面地了解这些技术栈的特性和发展方向。 GitHub开源地…

电脑右下角出线白色弹窗的解决方法

电脑无缘无故&#xff0c;在右下角出现一个白色弹窗&#xff0c;无法关闭&#xff0c;非常恶心&#xff0c;后来经过查询&#xff0c;发现可能是360之类的弹bug&#xff0c;解决只需要&#xff1a; 1、鼠标左键 点击一下白框 2、键盘输入 AltF4 虽不是技术问题&#xff0c;但解…

Github上那些好用的安全工具(三)

专注于web漏洞挖掘、内网渗透、免杀和代码审计&#xff0c;感谢各位师傅的关注&#xff01;网安之路漫长&#xff0c;与君共勉&#xff01; URLFinder 一款快速提取网页信息的工具。该项目可以快速爬取网页上的 URL 地址、JS 文件里的 API 接口等信息&#xff0c;支持批量抓取、…

日期工具的逻辑与数据请求函数的完善

src\libs\utils.js 获取当前日期格式 /*** 获取当前日期格式* param {*} field * returns */ function getNowDate(field) {const date new Date()let year date.getFullYear(),month date.getMonth() 1,day date.getDate()switch (field) {case day:return ${year}-${mo…

Halcon测量专栏-圆度

1.前言 1.1什么是圆度 圆度是指工件的横截面接近理论圆的程度&#xff0c;最大半径与最小半径之差为0时&#xff0c;圆度为0&#xff0c;测量工具为圆度仪&#xff0c;用途是测环形工件的圆度。圆度是限制实际圆对理想圆变动量的一项指标&#xff0c;其公差带是以公差值t为半…

FFmpeg——开源的开源的跨平台音视频处理框架简介

引言&#xff1a; FFmpeg是一个开源的跨平台音视频处理框架&#xff0c;可以处理多种音视频格式。它由Fabrice Bellard于2000年创建&#xff0c;最初是一个只包括解码器的项目。后来&#xff0c;很多开发者参与其中&#xff0c;为FFmpeg增加了多种新的功能&#xff0c;例如编码…

现在可以在Mac桌面上快速打开C知道进行AI提问

看&#xff0c;我的Mac桌面有个C知道组件&#xff0c;点击即可快速打开C知道页面进行提问使用&#xff0c;再也不需要先打开浏览器&#xff0c;再输入csdn.net访问网站&#xff0c;然后点击页面上的C知道入口。 这是如何实现的呢&#xff1f; 首先&#xff0c;我们来做一些准…

A股风格因子看板 (2024.3 第3期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格景 露等。 今日为该因子跟踪第3期&#xff0c;指数组合数据截止日2024-02-29&#xff0c;要点如下 近1年A股风格因子收益走…

C语言分析基础排序算法——交换排序

目录 交换排序 冒泡排序 快速排序 Hoare版本快速排序 挖坑法快速排序 前后指针法快速排序 快速排序优化 快速排序非递归版 交换排序 冒泡排序 见C语言基础知识指针部分博客C语言指针-CSDN博客 快速排序 Hoare版本快速排序 Hoare版本快速排序的过程类似于二叉树前序…

3.6研究代码(2)

指的是微电网运行参数。 在MATLAB中&#xff0c;randi([0,1],1,48) 会生成一个包含1*48个0或1的随机整数数组。这意味着数组中的每个元素都将是0或1。 MATLAB帮助中心&#xff1a;均匀分布的伪随机整数 - MATLAB randi - MathWorks 中国https://ww2.mathworks.cn/help/matlab/r…

(二十四)Flask之flask-session组件

目录&#xff1a; 每篇前言&#xff1a;Flask-session 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 &#x1f525;&#x1f525;本文已收录于…

2024 年 AI 垂直应用迅速落地,人人都可以获得AI红利

演示站点&#xff1a; https://ai.uaai.cn 技能模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI…

Nestjs与Vue实现多人聊天[简易版]

本项目是一个小demo,帮助各位理清一点开发思路&#xff0c;作为一个小参考&#xff0c;虽然技术栈是nodejs。但是其他语言也是相通的。 准备环境&#xff1a; Nodejs version >18.13.0Vue3Nestjssoket.io 一、初始化 打开一个路径启动cmd窗口&#xff0c;初始化前后端项…

YOLOv8独家改进:backbone改进 | 最新大卷积核CNN架构UniRepLKNet,ImageNet 88% | CVPR2024

💡💡💡本文独家改进:大核卷积一统多种模态!RepLK正统续作UniRepLKNet,代替YOLOv8 Backbone 改进结构图如下: 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适…

​​​​​​​ARCGIS API for Python进行城市区域提取

ArcGIS API for Python主要用于Web端的扩展和开发&#xff0c;提供简单易用、功能强大的Python库&#xff0c;以及大数据分析能力&#xff0c;可轻松实现实时数据、栅格数据、空间数据等多源数据的接入和GIS分析、可视化&#xff0c;同时提供对平台的空间数据管理和组织管理功能…

GaLore的全称是“Gradient Low-Rank Projection“,翻译过来就是“梯度低秩投影“

鉴于大家对GaLore比较感兴趣,我今天试着结合论文做一个更深入的解读: GaLore的全称是"Gradient Low-Rank Projection",翻译过来就是"梯度低秩投影"。它的核心思想是通过降低优化器状态的秩,来大幅减少内存占用。 在训练大模型时,我们需要存储三类数据:模型…

响应式招标投标网站模板

模板信息&#xff1a; 模板编号&#xff1a;29165 模板编码&#xff1a;UTF8 模板分类&#xff1a;博客、文章、资讯、其他 适合行业&#xff1a;招标类企业 模板介绍&#xff1a; 下载转载自&#xff1a;https://www.qnziyw.cn/cmsmb/eyoucms/wenzhangzx/4332.html 本模板自带…

arcgis栅格数据处理3——定义投影(同样适用于其他类型文件)

进行数据连接时可能出现未设置投影无法链接的情况&#xff0c;需要先定义投影 点击最右侧“目录”&#xff0c;弹出带有系统工具的面板&#xff0c;点击“data management tools”点击“投影”&#xff0c;“定义投影”

大模型快速实现python3+html内容在线渲染

需求&#xff1a; 有一份数据需要通过前端在线展示给用户&#xff0c;不需要复杂的样式交互&#xff0c;后端服务是基于Python3实现的API接口&#xff0c;对前端技术不是很了解&#xff0c;需要快速实现该需求。类似样式即可&#xff1a; 思路&#xff1a; 如果页面不复杂&am…