【Java】常用API——日期时间类、System类

简介: 本期主要介绍常用API——日期时间类、System类

1. 日期时间类


1.1 Date


概述

java.util.Date 类 表示特定的瞬间,精确到毫秒。

继续查阅 Date 类的描述,发现 Date 拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

public Date() :分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

public Date(long date) :分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为 “ 历元( epoch )” ,即 1970 年 1 月 1 日 00:00:00 GMT )以来的指定毫秒数。

tips: 由于我们处于东八区,所以我们的基准时间为 1970 年 1 月 1 日 8 时 0 分 0 秒。

简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定 long 类型的构造参数,可以自定义毫秒时刻。例如:

image.png

tips: 在使用 println 方法时,会自动调用 Date 类中的 toString 方法。 Date 类对 Object 类中的 toString 方

法进行了覆盖重写,所以结果为指定格式的字符串。

常用方法  

Date 类中的多数方法已经过时,常用的方法有:

public long getTime() 把日期对象转换成对应的时间毫秒值。

1.2 DateFormat


java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换 , 也就是可以在 Date 对象与 String 对象之间进行来回转换。

格式化 :按照指定的格式,从 Date 对象转换为 String 对象。

解析 :按照指定的格式,从 String 对象转换为 Date 对象。

构造方法

由于 DateFormat 为抽象类,不能直接使用,所以需要常用的子类 java.text.SimpleDateFormat 。

这个类需要一个

模式(格式)来指定格式化或解析的标准。构造方法为:

public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造

SimpleDateFormat 。

参数 pattern 是一个字符串,代表日期时间的自定义格式。

格式规则

常用的格式规则为:

image.png

备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档0

创建SimpleDateFormat对象的代码如:

image.png

常用方法

DateFormat 类的常用方法有:

public String format(Date date) :将 Date 对象格式化为字符串。

public Date parse(String source) :将字符串解析为 Date 对象。

format 方法

使用 format 方法的代码为:

image.png

parse方法

使用parse方法的代码为

image.png

1.3 练习


请使用日期时间相关的API,计算出一个人已经出生了多少天。

思路:

1. 获取当前时间对应的毫秒值

2. 获取自己出生日期对应的毫秒值

3. 两个时间相减(当前时间 – 出生日期)

代码实现:

image.png

1.4 Calendar


概念

日历我们都见过

image.png

为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

获取方式

Calendar 为抽象类,由于语言敏感性, Calendar 类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

Calendar 静态方法

public static Calendar getInstance() :使用默认时区和语言环境获得一个日历

例如:

image.png

常用方法

根据 Calendar 类的 API 文档,常用方法有:

public int get(int field) :返回给定日历字段的值。

public void set(int field, int value) :将给定的日历字段设置为给定值。

public abstract void add(int field, int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。

public Date getTime() :返回一个表示此 Calendar 时间值(从历元到现在的毫秒偏移量)的 Date 对象。

Calendar 类中提供很多成员常量,代表给定的日历字段:

image.png

get/set方法

get方法用来获取指定字段的值,set方法用来设置指定字段的值,代码使用演示:

image.png

image.png

add方法

add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移量。代码如:

image.png

getTime方法

Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。

image.png

小贴士:

西方星期的开始为周日,中国为周一。

在 Calendar 类中,月份的表示是以 0-11 代表 1-12 月。

日期是有大小关系的,时间靠后,时间越大。

2. System


java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API档中,常用的方法有:

public static long currentTimeMillis() :返回以毫秒为单位的当前时间。

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中。

2.1 currentTimeMillis方法


实际上,currentTimeMillis方法就是 获取当前系统时间与1970010100:00点之间的毫秒差值

image.png

练习

验证for循环打印数字1-9999所需要使用的时间(毫秒)

image.png

2.2 arraycopy方法


public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :将数组中指定的数据拷贝到另一个数组中。

数组的拷贝动作是系统级的,性能很高。 System.arraycopy 方法具有 5 个参数,含义分别为:

image.png

练习

将 src 数组中前 3 个元素,复制到 dest 数组的前 3 个位置上复制元素前: src 数组元素 [1,2,3,4,5] , dest

数组元素

[6,7,8,9,10] 复制元素后: src 数组元素 [1,2,3,4,5] , dest 数组元素 [1,2,3,9,10]

image.png


相关文章
|
1月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
1月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
48 19
|
1月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
68 11
|
2月前
|
数据采集 JSON Java
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。
|
2月前
|
数据采集 存储 Java
Java爬虫获取微店店铺所有商品API接口设计与实现
本文介绍如何使用Java设计并实现一个爬虫程序,以获取微店店铺的所有商品信息。通过HttpClient发送HTTP请求,Jsoup解析HTML页面,提取商品名称、价格、图片链接等数据,并将其存储到本地文件或数据库中。文中详细描述了爬虫的设计思路、代码实现及注意事项,包括反爬虫机制、数据合法性和性能优化。此方法可帮助商家了解竞争对手,为消费者提供更全面的商品比较。
|
2月前
|
数据采集 算法 Java
如何在Java爬虫中设置动态延迟以避免API限制
如何在Java爬虫中设置动态延迟以避免API限制
|
2月前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
414 5
|
23天前
|
JSON 数据挖掘 API
1688API最新指南:商品详情接口接入与应用
本指南介绍1688商品详情接口的接入与应用,该接口可获取商品标题、价格、规格、库存等详细信息,适用于电商平台开发、数据分析等场景。接口通过商品唯一标识查询,支持HTTP GET/POST请求,返回JSON格式数据,助力开发者高效利用1688海量商品资源。
|
23天前
|
JSON 数据挖掘 API
京东API接口最新指南:店铺所有商品接口的接入与使用
本文介绍京东店铺商品数据接口的应用与功能。通过该接口,商家可自动化获取店铺内所有商品的详细信息,包括基本信息、销售数据及库存状态等,为营销策略制定提供数据支持。此接口采用HTTP请求(GET/POST),需携带店铺ID和授权令牌等参数,返回JSON格式数据,便于解析处理。这对于电商运营、数据分析及竞品研究具有重要价值。
|
1月前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。

热门文章

最新文章