Java常见API文档(下)

news2025/7/18 10:28:46

在这里插入图片描述
格式化的时间形式的常用模式对应关系如下:
在这里插入图片描述

空参构造创造simdateformate对象,默认格式

练习.按照指定格式展示

在这里插入图片描述

package kl002;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date3 {
    public static void main(String[] args) throws ParseException {
        String str = "2000-11-11";
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        Date date = sdf1.parse(str);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
        String result = sdf2.format(date);
        System.out.println(result);
    }
}

运行结果:
2000年11月11日

细节:SimpleDateFormat 是 Java 中用于处理日期格式化和解析的类,位于 java.text 包下。它允许你将日期对象(如 java.util.Date 或 java.util.Calendar)按照指定的模式格式化为字符串,也可以将字符串解析为日期对象。
基本用法

  1. 格式化日期(Date → String)
  2. 解析字符串(String → Date)
  3. 注意事项
    线程不安全
    SimpleDateFormat 不是线程安全的,在多线程环境下使用时需要注意同步问题,建议每个线程单独创建实例。
    时区和语言环境
    默认使用系统时区和语言环境,可通过 setTimeZone() 和构造函数指定:
    4.异常处理
    解析字符串时可能抛出 ParseException,必须进行异常处理。
    替代方案(Java 8+)
    Java 8 引入的 java.time 包(如 LocalDateTime、DateTimeFormatter)提供了更现代化、线程安全的日期时间 API:

练习.秒杀活动

在这里插入图片描述

package kl002;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateFormateDemo1 {
    public static void main(String[] args) throws ParseException {
        //比较两个时间
        //解析时间得到毫秒值
        String startstr = "2023年11月11日 0:0:0";
        String endstr = "2023年11月11日 0:10:0";
        String orderstr = "2023年11月11日 0:01:0";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        //解析上面三个时间,得到Date对象
        Date startDate = sdf.parse(startstr);
        Date endDate = sdf.parse(endstr);
        Date orderDate = sdf.parse(orderstr);
        //得到三个时间的毫秒值
        long startTime = startDate.getTime();
        long endTime = endDate.getTime();
        long orderTime = orderDate.getTime();
        //判断
        if (orderTime >= startTime && orderTime <= endTime) {
            System.out.println("参加秒杀活动成功");
        } else {
            System.out.println("参加秒杀活动失败");
        }
    }
}

运行结果:
参加秒杀活动成功

总结

在这里插入图片描述

Calender

Calender概述
在这里插入图片描述
细节:Calender是一个抽象类,不能直接创建对象
Calender常用方法
在这里插入图片描述
细节:
月份:范围0-11,如果获取出来的是0,那么实际上是1月

总结

在这里插入图片描述

  1. 获取 Calendar 实例
  2. 获取和设置日期字段
  3. 日期计算
  4. 与 Date 类互转
    5.格式化输出
    通常结合 SimpleDateFormat 或 Java 8+ 的 DateTimeFormatter 使用
    注意事项
    月份从 0 开始
    Calendar.JANUARY 到 Calendar.DECEMBER 的值是 0 到 11,设置和获取月份时需要注意。
    线程安全
    Calendar 类不是线程安全的,多线程环境下需注意同步问题。
    Java 8+ 推荐使用 java.time 包
    Java 8 引入的 java.time 包(如 LocalDateTime、ZonedDateTime)提供了更简洁、线程安全的 API
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    自动装箱:把基本数据类型自动变成其对应的包装类
    自动拆箱:把包装类自动变成其对象的基本数据类型

JDK5以后:int和Integer可以看作是同一个东西,因为在内部可以自动转化

包装类.总结

在这里插入图片描述
在这里插入图片描述
以后要进行键盘录入,统一使用nextline
特点:遇到回车才结束

练习.键盘录入

在这里插入图片描述

package kl003;

import java.util.ArrayList;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {
        //1.创建一个集合用来添加整数
        ArrayList<Integer> list = new ArrayList<>();
        //2.键盘录入整数添加到集合当中
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入一个整数:");
            String numStr = sc.nextLine();
            int num = Integer.parseInt(numStr);
            //3.过滤异常数据
            if (num < 1 || num > 100) {
                System.out.println("输入的数字超出范围,请重新输入");
                continue;
            }
            list.add(num);
            int sum = getSum(list);
            if (sum > 200){
                System.out.println("集合中的所有的数据和已经满足需求");
                break;
            }
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i) + " ");
        }
    }
    private static int getSum(ArrayList<Integer> list) {
        int sum = 0;
        for (int i = 0; i < list.size(); i++) {
            int num = list.get(i);
            sum = sum + num;
        }
        return sum;
    }
}

运行结果:
请输入一个整数:
1
请输入一个整数:
50
请输入一个整数:
10
请输入一个整数:
100
请输入一个整数:
50
集合中的所有的数据和已经满足需求
1
50
10
100
50
细节与代码总结:
//1.创建一个集合用来添加整数
//2.键盘录入整数添加到集合当中
//3.过滤异常数据

练习.算法水题

在这里插入图片描述

package kl003;

public class Test2 {
    public static void main(String[] args) {
        //定义一个字符串
        String str = "123456789";   
        //2.校验一个字符串
        //习惯:过滤异常数据
        if (str.matches("[1-9]\\d(0,9)")) {
            //错误的数据
            System.out.println("数据格式有误");
        } else {
            //正确的数据
            System.out.println("数据格式正确");
            //3.定义一个变量,表示最终的结果
            int num = 0;
            //4.遍历字符串,得到每一个字符
            for (int i = 0; i < str.length(); i++) {
                int c = str.charAt(i) - '0';
                //5.把每一位数字放到num中
                num = num * 10 + c;
            }
            System.out.println(num);
            System.out.println(num+1);
        }
    }
}

运行结果:
数据格式正确
123456789

练习.算法水题

在这里插入图片描述

package kl003;

public class Test3 {
    public static void main(String[] args) {
        System.out.println(toBinaryString(123));
    }
    public static String toBinaryString(int num) {
        //定义一个StringBuilder对象来拼接余数
        StringBuilder sb = new StringBuilder();
        //利用循环不断的除以2,取余数
        //运用死循环
        while(true){
            if (num == 0){
                break;
            }
            //取余数  %
            int remainder = num % 2;
            //倒着拼接
            sb.insert(0,remainder);
            //除以2
            num = num / 2;
        }
        return sb.toString();
    }

}

运行结果:
1111011

练习.算法水题

在这里插入图片描述

package kl003;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Date;

public class Test4 {
    public static void main(String[] args) throws ParseException {
        //请使用代码实现计算你活了多少天,用JDK7和JDK8两种方式实现
        //JDK7
        String birthday = "2005年12月5日";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = sdf.parse(birthday);
        long birthdayTime = date.getTime();
        //计算当前时间的毫秒值
        long todayTime = System.currentTimeMillis();
        //计算间隔多少天
        long time = todayTime - birthdayTime;
        //计算天数
        long day = time / 1000 / 60 / 60 / 24;
        System.out.println("你活了" + day + "天");
        //JDK8
        LocalDate ld1 = LocalDate.of(2005,12,5);
        LocalDate ld2 = LocalDate.now();
        long days = ChronoUnit.DAYS.between(ld1,ld2);
        System.out.println("你活了" + days + "天");
    }
}

运行结果:
你活了7105天
你活了7105天

练习.算法水题

在这里插入图片描述

package kl003;

import java.time.LocalDate;
import java.util.Calendar;

public class Test5 {
    public static void main(String[] args) {
        //JDK7
        //可以把时间设置为2000年3月1日
        Calendar c = Calendar.getInstance();
        c.set(2000,2,1);
        //月份的范围是0-11
        //把日期往前推一天
        c.add(Calendar.DAY_OF_MONTH,-1);
        //看当前的时间是28号还是29号
        int day = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
        //JDK8
        //月份范围1-12
        LocalDate.of(2000,3,1);
        //把时间往前减一天
        LocalDate ld2 = LocalDate.of(2000, 3, 1).minusDays(1);
        System.out.println(ld2);
        //JDK8判断是否是闰年
        System.out.println(ld2.isLeapYear());
    }
}

运行结果:
29
2000-02-29
true
谢谢观看

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

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

相关文章

DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶

《DriveGPT4: Interpretable End-to-End Autonomous Driving via Large Language Model》 2024年10月发表&#xff0c;来自香港大学、浙江大学、华为和悉尼大学。 多模态大型语言模型&#xff08;MLLM&#xff09;已成为研究界关注的一个突出领域&#xff0c;因为它们擅长处理…

构建共有语料库 - Wiki 语料库

中文Wiki语料库主要指的是从中文Wikipedia&#xff08;中文维基百科&#xff09;提取的文本数据。维基百科是一个自由的、开放编辑的百科全书项目&#xff0c;覆盖了从科技、历史到文化、艺术等广泛的主题。 对于基于RAG的应用来说&#xff0c;把Wiki语料作为一个公有的语料库…

苍穹外卖项目中的 WebSocket 实战:实现来单与催单提醒功能

&#x1f680; 苍穹外卖项目中的 WebSocket 实战&#xff1a;实现来单与催单提醒功能 在现代 Web 应用中&#xff0c;实时通信成为提升用户体验的关键技术之一。WebSocket 作为一种在单个 TCP 连接上进行全双工通信的协议&#xff0c;被广泛应用于需要实时数据交换的场景&#…

Win10 安装单机版ES(elasticsearch),整合IK分词器和安装Kibana

一. 先查看本机windows是否安装了ES(elasticsearch)&#xff0c;检查方法如下&#xff1a; 检查进程 按 Ctrl Shift Esc 组合键打开 “任务管理器”。在 “进程” 选项卡中&#xff0c;查看是否有 elasticsearch 相关进程。如果有&#xff0c;说明系统安装了 ES。 检查端口…

【Redis】List 列表

文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型&#xff0c;用于存储多个字符串。在操作和实现上&#xff0c;类似 C 的双端队列&#xff0c;支持随机访问(O(N)…

JUC入门(四)

ReadWriteLock 代码示例&#xff1a; package com.yw.rw;import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReadWriteDemo {public static void main(String[] args) {MyCache myCache new MyCache…

【HarmonyOS 5】鸿蒙mPaaS详解

【HarmonyOS 5】鸿蒙mPaaS详解 一、mPaaS是什么&#xff1f; mPaaS 是 Mobile Platform as a Service 的缩写&#xff0c;即移动开发平台。 蚂蚁移动开发平台mPaaS &#xff0c;融合了支付宝科技能力&#xff0c;可以为移动应用开发、测试、运营及运维提供云到端的一站式解决…

无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本

遇到“无法加载文件 E:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本”这类错误&#xff0c;通常是因为你的 PowerShell 执行策略设置为不允许运行脚本。在 Windows 系统中&#xff0c;默认情况下&#xff0c;出于安全考虑&#xff0c;PowerShell 可能会阻止运行未…

【C++模板与泛型编程】实例化

目录 一、模板实例化的基本概念 1.1 什么是模板实例化&#xff1f; 1.2 实例化的触发条件 1.3 实例化的类型 二、隐式实例化 2.1 隐式实例化的工作原理 2.2 类模板的隐式实例化 2.3 隐式实例化的局限性 三、显式实例化 3.1 显式实例化声明&#xff08;extern templat…

什么是RDMA?

什么是RDMA&#xff1f; RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问&#xff0c;就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机&#xff0c;无需双方操作系统的介入。这允许高吞吐、低延迟的网络…

ASIC和FPGA,到底应该选择哪个?

ASIC和FPGA各有优缺点。 ASIC针对特定需求&#xff0c;具有高性能、低功耗和低成本&#xff08;在大规模量产时&#xff09;&#xff1b;但设计周期长、成本高、风险大。FPGA则适合快速原型验证和中小批量应用&#xff0c;开发周期短&#xff0c;灵活性高&#xff0c;适合初创企…

Python学习笔记--使用Django操作mysql

注意&#xff1a;本笔记基于python 3.12&#xff0c;不同版本命令会有些许差别&#xff01;&#xff01;&#xff01; Django 模型 Django 对各种数据库提供了很好的支持&#xff0c;包括&#xff1a;PostgreSQL、MySQL、SQLite、Oracle。 Django 为这些数据库提供了统一的调…

计算机视觉设计开发工程师学习路线

以下是一条系统化的计算机视觉&#xff08;CV&#xff09;学习路线&#xff0c;从基础到进阶&#xff0c;涵盖理论、工具和实践&#xff0c;适合逐步深入&#xff0c;有需要者记得点赞收藏哦&#xff1a; 相关学习&#xff1a;python深度学习&#xff0c;python代码定制 python…

STM32实战指南:DHT11温湿度传感器驱动开发与避坑指南

知识点1【DHT11的概述】 1、概述 DHT是一款温湿度一体化的数字传感器&#xff08;无需AD转换&#xff09;。 2、驱动方式 通过单片机等微处理器简单的电路连接就能实时采集本地湿度和温度。DHT11与单片机之间采用单总线进行通信&#xff0c;仅需要一个IO口。 相对于单片机…

【android bluetooth 协议分析 01】【HCI 层介绍 8】【ReadLocalVersionInformation命令介绍】

1. HCI_Read_Local_Version_Information 命令介绍 1. 功能&#xff08;Description&#xff09; HCI_Read_Local_Version_Information 命令用于读取本地 Bluetooth Controller 的版本信息&#xff0c;包括 HCI 和 LMP 层的版本&#xff0c;以及厂商 ID 和子版本号。 这类信息用…

esp32课设记录(四)摩斯密码的实现 并用mqtt上传

摩斯密码(Morse Code)是一种通过点(.)和划(-)组合来表示字符的编码系统。下面我将在esp32上实现摩斯密码的输入&#xff0c;并能够发送到mqtt的broker。 先捋一下逻辑&#xff0c;首先esp32的按键已经编写了短按与长按功能&#xff0c;这将是输出摩斯密码点和划的基础。然后当2…

「HHT(希尔伯特黄变换)——ECG信号处理-第十三课」2025年5月19日

一、引言 心电信号&#xff08;ECG&#xff09;是反映心脏电活动的重要生理信号&#xff0c;其特征提取对于心脏疾病的诊断和监测具有关键意义。Hilbert - Huang Transform&#xff08;HHT&#xff09;作为一种强大的信号处理工具&#xff0c;在心电信号特征提取领域得到了广泛…

前端(vue)学习笔记(CLASS 6):路由进阶

1、路由的封装抽离 将之前写在main.js文件中的路由配置与规则抽离出来&#xff0c;放置在router/index.js文件中&#xff0c;再将其导入回main.js文件中&#xff0c;即可实现路由的封装抽离 例如 //index.js import { createMemoryHistory, createRouter } from vue-routerim…

GPT-4.1特点?如何使用GPT-4.1模型,GPT-4.1编码和图像理解能力实例展示

几天前&#xff0c;OpenAI在 API 中推出了三个新模型&#xff1a;GPT-4.1、GPT-4.1 mini 和 GPT-4.1 nano。这些模型的性能全面超越 GPT-4o 和 GPT-4o mini(感觉这个GPT-4.1就是GPT-4o的升级迭代版本)&#xff0c;主要在编码和指令跟踪方面均有显著提升。还拥有更大的上下文窗口…

写一段图片平移的脚本

问题描述&#xff1a; 写一段图片平移的脚本。 平移就是将对象换一个位置。如果你要沿方向移动&#xff0c;移动的距离是&#xff0c;你可以以下面的方式构建移动矩阵&#xff1a;。 你可以使用Numpy 数组构建这个矩阵&#xff08;数据类型是np.float32&#xff09;&#xf…