Java基础10:常用API(下)

news2024/9/20 8:56:36

Java基础10:常用API(下)

  • 一、Date
  • 二、SimpleDateFormat
  • 三、Calendar
  • 四、ZoneId
  • 五、Instant
  • 六、ZoneDateTime
  • 七、DateTimeFormatter
  • 八、LocalDate、LocalTime、LocalDateTime
  • 九、Duration、Period、ChronoUnit
  • 十、包装类

一、Date

  • Date类是一个JDK写好的JavaBean类,用来描述时间,精确到毫秒。
  • 创建Date对象
    • 空参构造:Date date = new Date(); 表示当前系统时间。
    • 有参构造:Date date = new Date(指定毫秒值); 表示指定的时间。
  • 修改时间对象的毫秒值:setTime(毫秒值);
  • 获取时间对象的毫秒值:getTime();

二、SimpleDateFormat

  • 作用:
    • 格式化:把时间变成指定的格式。
    • 解析:把字符串表示的时间变成Date对象。
  • 构造方法:
    构造方法说明
    SimpleDateFormat()默认格式构造一个SimpleDateFormat对象
    SimpleDateFormat(String pattern)指定格式构造一个SimpleDateFormat对象
  • 成员方法:
    方法返回类型说明
    format(Date date)String格式化(日期对象->字符串)
    parse(String source)Date解析(字符串->日期对象)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo2 {
    public static void main(String[] args) throws ParseException {
        // 空参构造
        SimpleDateFormat sdf1 = new SimpleDateFormat();
        Date date = new Date(0L);
        System.out.println(sdf1.format(date));

        // 有参构造
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EE");
        String str = sdf2.format(date);
        System.out.println(str);

        // 字符串转时间
        Date parseDate = sdf2.parse(str);
        System.out.println(parseDate.getTime());
    }
}

在这里插入图片描述

三、Calendar

  • Calendar代表系统当前时间的日历对象,可以单独修改、获取时间中的年月日。
  • Calendar是一个抽象类,不能直接创建对象,需要用静态方法获取对象。Calendar c = Calendar.getInstance();
  • 常用方法:
    方法名返回类型说明
    getTime()Date获取日期对象
    setTime(Date date)void给日历设置日期对象
    getTimeInMillis()long拿到时间毫秒值
    setTimeInMillis(long millis)void给日历设置时间毫秒值
    get(int field)int获取日历中某个字段信息
    set(int field, int value)void修改日历中某个字段信息
    add(int field, int amount)void为某个字段增加/减少指定的值
  • 注意事项:
    1. 日历类中月份范围:0~11
    2. 日历类中一周的第一天是星期日。

四、ZoneId

  • ZoneId 表示时区。
  • 常用方法(都是静态方法):
    方法名返回类型说明
    getAvailableZoneIds()Set<String>获取Java中支持的所有时区
    systemDefault()ZoneId获取系统默认时区
    of(String zoneId)ZoneId获取一个指定时区(字符串转ZoneId对象)

五、Instant

  • Instant 表示时间戳。
  • 常用方法:
    方法名返回类型说明
    now()Instant获取当前时间的Instant对象(标准时间)
    ofXXX(long epochMilli)Instant根据(秒/毫秒/纳秒)获取Instant对象
    atZone(ZoneId zone)ZoneDateTime指定时区
    isXXX(Instant otherInstant)boolean判断时间的一系列方法
    minusXXX(long millisToSubtract)Instant减少时间的一系列方法
    plusXXX(long millisToSubtract)Instant增加时间的一系列方法
  • 示例:
package day17.Instant;

import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Demo1 {
    public static void main(String[] args) {
        System.out.println("----获取当前时间----");
        Instant now = Instant.now();
        System.out.println(now);

        System.out.println("\n----根据(秒/毫秒/纳秒)获取Instant对象----");
        Instant second = Instant.ofEpochSecond(0L);
        Instant milli = Instant.ofEpochMilli(1L);
        Instant nano = Instant.ofEpochSecond(1L, 10000000000L);
        System.out.println(second);
        System.out.println(milli);
        System.out.println(nano);

        System.out.println("\n----指定时区----");
        ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.systemDefault());
        System.out.println(zonedDateTime);

        System.out.println("\n----isXXX判断----");
        boolean after = second.isAfter(nano);
        System.out.println(after);

        System.out.println("\n----minusXXX减少时间----");
        Instant minusSeconds = nano.minusSeconds(111);
        System.out.println(minusSeconds);
    }
}

在这里插入图片描述

六、ZoneDateTime

  • ZoneDateTime 表示带时区的时间。
  • 常用方法:
    方法名返回类型说明
    now()ZoneDateTime获取当前时间的ZoneDateTime对象
    ofXXX(…)ZoneDateTime获取指定时间的ZoneDateTime对象
    withXXX(时间)ZoneDateTime修改时间的一系列方法
    minus(时间)ZoneDateTime减少时间的一系列方法
    plus(时间)ZoneDateTime增加时间的一系列方法

七、DateTimeFormatter

  • DateTimeFormatter 用于时间的格式化和解析
  • 常用方法:
    方法名返回类型说明
    ofPattern()DateTimeFormatter获取格式化对象
    format(时间对象)String按照指定方式格式化时间
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Demo1 {
    public static void main(String[] args) {
        // 获取时间对象
        ZonedDateTime now = ZonedDateTime.now();
        System.out.println(now);

        // 获取格式化对象
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss E a");
        String result = dtf.format(now);
        System.out.println(result);
    }
}

在这里插入图片描述

八、LocalDate、LocalTime、LocalDateTime

  • 获取日历对象。
  • LocalDate 只能获取年月日,LocalTime 只能获取时分秒。
  • LocalDateTime 能获取所有信息。
  • 常用方法:
    方法名说明
    now()获取当前时间的对象
    ofXXX(…)获取指定时间的对象
    getXXX获取日历中的年月日时分秒等信息
    isXXX比较两个LocalDate
    withXXX修改时间的一系列方法
    minusXXX减少时间的一系列方法
    plusXXX增加时间的一系列方法
  • LocalDateTime 转换
    方法名说明
    toLocalDate()LocalDateTime转换成一个LocalDate
    toLocalTime()LocalDateTime转换成一个LocalTime

九、Duration、Period、ChronoUnit

  • Duration 计算两个“时间”间隔(秒、纳秒)
  • Period 计算两个“日期”间隔(年、月、日)
  • ChronoUnit 计算两个“时间”间隔的所有单位(常用)

十、包装类

  • 包装类:基本数据类型对应的对象。
  • 八种基本数据类型对应的包装类中,除了Character都有其对应的parseXXX方法,进行类型转换。
  • 自动装箱:把基本数据类型自动变成其对应的包装类。
    Integer i1 = 10;
    
  • 自动拆箱:把包装类自动变成其对应的基本数据类型。
    int i = i1;
    

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

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

相关文章

基于PIL和Tesseract的数字计算验证码识别处理思路

如图,我们在使用python自动化的时候经常会遇到很多各式各样的验证码。这个是一个数字加法的验证码。 干扰项里包含完整的数字、字母信息,普通的OCR识别可能不是很准确。 但是不管怎们样,咱们先把必要的环境搭建起来,试一下Tesseract的识别结果吧。 1、安装Tesseract: 首…

屏蔽360阻止运程执行变更注册表自启动数据的办法

屏蔽360阻止运程执行变更注册表自启动数据的办法 运程服务器上的程序&#xff0c;由于需要。我在服务器中&#xff0c;加入更新升级自身&#xff08;exe&#xff09;文件&#xff0c;并变更操作系统自启动数据的代码。 实践证明&#xff0c;通过客户端&#xff0c;调用运程服务…

全景解析SSD IO QoS性能优化

一、NAND基本原理目前NAND已经从SLC发展到PLC&#xff0c;但是PLC离大规模上市还有一段距离&#xff0c;我们暂时先略过。市面上主要流通的就是4种NAND类型&#xff1a;SLC、MLC、TLC、QLC。随着每个寿命从高到低依次是SLC>MLC>TLC>QLC.随着单个cell含有的bit数越多&a…

Unity MRTK使用详解(Htc vive+LeapMotion)

MRTK-Unity是一个由Microsoft驱动的开源项目&#xff0c;提供了多种组件和功能&#xff0c;用于加速Unity中的跨平台MR应用程序开发。以下是其一些功能&#xff1a; 提供跨平台输入系统和用于空间交互和UI组件。 启用快速原型通过在编辑器中的模拟&#xff0c;让你马上看到变化…

创建大量TCP连接时会受到什么因素的限制?

1.文件描述符资源 用户级限制 我们可以使用ulimit命令查看系统允许当前用户进程打开的文件数限制&#xff1a; ulimit -n 我们可以使用 ulimit -n 文件数 来修改不过这种设置是临时的&#xff0c;只在当前的session中有效。为永久修改用户级文件描述符数限制&#xff0c;可以…

SpringBoot框架介绍及使用

1. 概述 1.1 SpringBoot 简介 简化Spring应用开发的一个框架&#xff1b; 整个Spring技术栈的一个大整合&#xff1b; J2EE开发的一站式解决方案&#xff1b; 1.2 微服务 微服务&#xff1a;架构风格&#xff08;服务微化&#xff09; 一个应用应该是一组小型服务&#xff1b;…

【速记】离散分布的实现算法

离散分布与 zipf 分布 下面的一段代码&#xff0c;能根据数值描述来生成对应概率的离散值&#xff1a; #include <iostream> #include <iomanip> #include <map> #include <random>using namespace std;int main() {std::random_device rd;std::mt19…

「计算机组成原理」计算机系统概述

文章目录一、计算机发展历程1.1 什么是计算机系统1.2 硬件的发展1.2.1 硬件发展1.2.2 摩尔定律1.3 软件的发展1.4 目前的发展趋势二、计算机系统的多级层次结构2.1 编程语言的三个等级2.2 计算机系统层次结构三、计算机硬件的基本组成3.1 冯诺依曼结构3.2 现代计算机结构四、计…

Codeforces Round #847 (Div. 3) 的 C. Premutation(找规律题)

题面&#xff1a;中文大意&#xff1a;如果一个n个数字的序列恰好包含了1到n的所有整数&#xff0c;那么这个序列就被称为置换。例如&#xff0c;序列[3&#xff0c;1&#xff0c;4&#xff0c;2]。1]和[2&#xff0c;1]是互换&#xff0c;但是[1&#xff0c;2&#xff0c;1]&a…

Java设计模式-备忘录模式Memento

介绍 备忘录模式&#xff08;Memento Pattern&#xff09;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。可以这里理解备忘录模式&#xff1a;现实生活中的备忘录是用来记录某…

window系统path环境变量删除了怎么办?

前言 纪念我今天装JDK配置环境时&#xff0c;误删了path环境变量&#xff0c;后总结的知识点&#xff0c;希望对大家有所帮助&#xff0c;期待大家的评论&#xff01; 目录 前言 方案一&#xff1a;从注册表里找 方案二&#xff1a;实在没办法&#xff0c;从网上复制 方案三…

7-1输入/输出系统-概念外设接口

文章目录一.I/O系统基本概念&#xff08;一&#xff09;输入/输出系统&#xff08;二&#xff09;I/O控制方式二.外部设备1.显示存储器VRAM2.字符显示器3.外储存器三.I/O接口1.I/O接口的功能2.I/O接口的基本结构3.I/O接口的工作原理4.I/O接口的类型5.I/O端口及其编址&#xff0…

网络编程(TCP+UDP)(3)

1)咱们之前所说的网络分层就是因为说如果说使用一个协议太复杂了&#xff0c;那么我们就需要把这个协议分层&#xff0c;每一个协议都会简单一些&#xff0c;灵活替换也更方便&#xff1b; 2)咱们现在需要实现一个网络计算器&#xff1b; 1)上图是模拟一个计算器服务器和客户端…

第01天-Java数据结构和算法

001_几个经典的算法面试题(1)暴力匹配不推荐KMP算法分治算法002_几个经典的算法面试题(2)回溯算法图的深度优先遍历算法(DFS) 贪心算法优化003_内容介绍和授课方式数据结构和算法的重要性课程亮点和授课方式004_数据结构和算法的关系005_编程中实际遇到的几个问题Java代码小结…

机器学习实战(第二版)读书笔记(3)——膨胀卷积,WaveNet

一、基础知识 对于一个卷积层&#xff0c;如果希望增加输出单元的感受野&#xff0c;一般可以通过三种方式实现&#xff1a; 增加卷积核的大小增加层数&#xff08;比如两层3 3 的卷积可以近似一层5 5 卷积的效果&#xff09;在卷积之前进行池化操作 其中第1&#xff0c;2种…

推荐5个很牛的开源项目

大家伙们年过了哈&#xff0c;该收拾收拾心情上班了。 不知道大家有没有这种感觉&#xff0c;年纪越大&#xff0c;越觉得年过得快。感觉好像才刚开始&#xff0c;马上初五了&#xff0c;初六送完穷鬼&#xff0c;初七送自己出来上班了&#xff08;没有哭&#xff09;。 不过…

Python编写的词频统计工具的使用说明

一、工具下载 https://download.csdn.net/download/huangbangqing12/87400984 二、工具使用方式 目录文件如下所示&#xff1a; 请先在word.txt文件里放入目标长尾词&#xff0c;一行一个&#xff1a; 文件-另存为&#xff1a; 选择utf-8编码并直接保存替换原文件&#xff1…

二叉树的层次遍历

文章目录二叉树的层次遍历二叉树的层次遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637.二叉树的层平均值429. N 叉树的层序遍历515.在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针填充每个节点的下一个右侧节点指针II104.二叉树的最大深度二叉树的最小深度二…

ESPnet

文章目录关于 ESPnet安装配置运行 yesno关于 ESPnet github&#xff1a; https://github.com/espnet/espnet ESPnet is an end-to-end speech processing toolkit covering end-to-end speech recognition, text-to-speech, speech translation, speech enhancement, speaker …

机器自动翻译古文拼音 - 十大宋词 - 声声慢 寻寻觅觅 李清照

声声慢寻寻觅觅 宋李清照 寻寻觅觅&#xff0c;冷冷清清&#xff0c;凄凄惨惨戚戚。 乍暖还寒时候&#xff0c;最难将息。 三杯两盏淡酒&#xff0c;怎敌他、晚来风急。 雁过也&#xff0c;最伤心&#xff0c;却是旧时相识。 满地黄花堆积&#xff0c;憔悴损&#xff0c;如今…