joda-time快速入门学习

衡山派Luban-Lite系统SDIO无线网络配置实战:以D133CBV-QFN88开发板与RTL8189模组为例 本文详细介绍了在衡山派D133CBV-QFN88开发板上,为Luban-Lite系统配置SDIO无线网络的完整实战流程。通过配置SDMC接口、RTL8189 Wi-Fi驱动、lwIP协议栈及内核参数,并解决编译分区问题,最终实现Wi-Fi网络连接与测试,为嵌入式设备联网提供清晰指导。 阅读详情

最近项目中有要修改时间一些处理,使用传统的java的Date包或者Calendar类太麻烦而且也不方便,这里推荐使用joda-time.方便实用,废话不多说,实战走起

添加maven的依赖

<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.9.9</version>
</dependency>

通常用的类是DateTime,只需要掌握DateTime常用的方法,就可以满足项目中对时间操作的需求。
DateTime常用的方法

  • 时间的减运算
方法名方法介绍
minusDays(n)返回DateTime类型的前n天
minusHours(n)返回DateTime类型的前n小时
minusMinutes(n)返回DateTime类型的前n分钟
minusMonths(n)返回DateTime类型前n月
minusSeconds(n)返回DateTime类型前n秒
minusWeeks(n)返回DateTime类型前n周
minusYears(n)返回DateTime类型前n年

我们可以这样获取一天前的时间:其他时间的纬度减运算与这个类似。

DateTime yesterday = now.minusDays(1);
  • 时间的增运算
方法名方法介绍
plusDays(n)返回DateTime类型的后n天
plusHours(n)返回DateTime类型的后n小时
plusMinutes(n)返回DateTime类型的后n分钟
plusMonths(n)返回DateTime类型后n月
plusSeconds(n)返回DateTime类型后n秒
plusWeeks(n)返回DateTime类型后n周
plusYears(n)返回DateTime类型后n年

时间的加运算类型下面这样,其他时间的纬度减运算与这个类似。

 DateTime plusDays = dateTime.plusDays(1)
  • 设定时间
方法名方法介绍
withDayOfMonth返回LocalDateTime月的第几天
withDayOfYear返回指定时间年的第几天
withHour返回指定时间的小时
withMinute返回指定时间的分钟
withMonth返回指定时间的月
withSecond返回指定时间的秒
withYear返回指定时间年份

通过以上API可以具体设置时间,例如: 设定时间为2019年5月15日23点30分30秒

Date time = now.withYear(2019).withMonthOfYear(5).withDayOfMonth(15)
.withHourOfDay(23).withMinuteOfHour(30).withSecondOfMinute(30);
  • DateTime的转化

上面获取时间返回的类型都是DateTime类型,通常我们需要的类型是java.util.Date这种的,这里只需调用DateTime的to
Date方法即可:

// DateTime转java.util.Date类型
Date date = time.toDate();
// 返回时间为:Wed May 15 23:30:30 CST 2019
System.out.println(time.toDate());
  • 获取当前时间
// 当前时间
DateTime now = new DateTime();
// 也可以这样获取当前时间。
DateTime now = DateTime.now();
  • 格式化时间和解析时间
// 时间格式化正则
String formatter="yyyy-MM-dd HH:mm:ss";
// withTimeAtStartOfDay 获取所在时间的0点时刻
String startTime = now.withTimeAtStartOfDay().toString(formatter);
// 获取当前时间的最后一刻时间即23点59分59秒
String endTime = now.millisOfDay().withMaximumValue().toString(formatter);
// 2019-05-15 00:00:00时间转DateTime类型
DateTime d = DateTime.parse(startTime, DateTimeFormat.forPattern(formatter));
  • 比较时间的大小
DateTime A = DateTime.now()
DateTime B= DateTime.now().plusDays(1)
// 比较时间A是否在时间B之后
System.out.println(A.isAfter(B));
// 比较时间A是否在时间B之前
System.out.println(A.isBefore(B));
// 比较时间A时间是否与B时间相等
System.out.println(A.isEqual(B));
  • 计算两个日期的时间差
计算两个日期相差多少天、相差多少月、相差多少年
DateTime nextFirstDay= dateTime.dayOfYear().withMinimumValue();
DateTime nextLastDay= dateTime.dayOfYear().withMaximumValue();
// 计算相差多少天
int days = Days.daysBetween(nextFirstDay, nextLastDay).getDays();
// 计算相差多少月
int months = Months.monthsBetween(nextFirstDay, nextLastDay).getMonths();
// 计算相差多少年
int years =Years.yearsBetween(nextFirstDay, nextLastDay).getYears();
// 计算相差多少小时
int hours = Hours.hoursBetween(nextFirstDay, nextLastDay).getHours();
// 计算相差多少小时
int minutes = Minutes.minutesBetween(nextFirstDay, nextLastDay).getMinutes();
  • 获取当前时间信息
 DateTime now = new DateTime();
 System.out.println("月中天" + now.dayOfMonth().get() + " 年中天" +
  now.dayOfYear().get() + " 周内天" + now.dayOfWeek().get());
  • 其他常见时间操作
// 得到任何日期所在周的第一天与最后一天
DateTime dateTime=new DateTime();
// 周一的现在时刻(假设今天周三下午5点,这里返回就是周一的下午5点)
String monday= dateTime.dayOfWeek().withMinimumValue().toString(“yyyyMMdd”);
// 周末的现在时刻 (假设今天周三下午5点,这里返回就是周日的下午5点)
String sunday= dateTime.dayOfWeek().withMaximumValue().toString(“yyyyMMdd”);
// 本周周一的0点
String week1 = now.millisOfDay().withMinimumValue().withDayOfWeek(1).toString(formatter);
//本周周末的23点59分59秒
String week2 = now.millisOfDay().withMaximumValue().withDayOfWeek(7).toString(formatter);
DateTime dateTime=new DateTime();
//得到任何日期所在月的第一天(假设今天周三下午5点,这里返回就是此月1号的下午5点)与最后一天
String first= dateTime.dayOfMonth().withMinimumValue().toString(“yyyyMMdd”);
//得到任何日期所在月的第一天(假设今天周三下午5点,这里返回就是此月末那天的下午5点)与最后一天
String last= dateTime.dayOfMonth().withMaximumValue().toString(“yyyyMMdd”);
// 返回当月第一天的零点零分
String month1 = now.dayOfMonth().withMinimumValue().withTimeAtStartOfDay().toString(formatter);
// 当月最后一天的23点59分
String month2 = now.dayOfMonth().withMaximumValue().millisOfDay().withMaximumValue().toString(formatter);
别再买模块了!手把手教你用FT232RL-REEL芯片,从零设计一个USB转串口电路板 本文详细介绍了如何使用FT232RL-REEL芯片从零设计USB转串口电路板,涵盖核心器件选型、原理图设计、PCB布局布线及焊接调试等关键步骤。通过实战案例和性能对比,展示自制电路板在成本、性能和可靠性上的优势,特别适合硬件爱好者和工程师参考。 阅读详情

相关推荐

Ubuntu 20.04下大陆ARS408毫米波雷达点云数据采集与RVIZ实时可视化全流程解析

本文详细解析了在Ubuntu 20.04系统下,如何实现大陆ARS408毫米波雷达的点云数据采集与RVIZ实时可视化全流程。内容涵盖硬件连接、ROS Noetic环境搭建、CAN接口配置、数据验证及自动化脚本编写,为机器人感知、自动驾驶等领域的开发者提供了一套稳定、实用的实战方案。

bash7scripter的博客 699

简单高效的JAVA日期处理工具类 -- 日期时间加减,大小比较

package com.game.admin.util; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import java.text.ParseException; import java.t...

haodanhui521的博客 2519

【STC32G12K128开发板】——从零到一:Keil C251开发环境全攻略

本文详细介绍了为STC32G12K128开发板搭建Keil C251开发环境的完整流程。从环境准备、软件安装、驱动配置到创建第一个工程并下载程序,提供了避坑指南和实用技巧,帮助开发者高效入门这款基于251内核的国产32位单片机开发。

weixin_29192141的博客 362

jodatime 时间比较

public ArrayList<CalcPeriod> getCalcPeriods() { DateTime now = DateTime.now(); DateTime.Property year = now.year(); DateTimeFormatter yyyyMMdd = DateTimeFormat.for...

weixin_30270889的博客 1823

【Verilog模块例化全解析:从入门到精通】

本文详细解析了Verilog模块例化的核心概念与方法。主要内容包括: 模块定义与例化的基本概念,强调模块例化会生成独立硬件电路; 两种端口连接方式:位置映射(按顺序连接)和名称映射(按端口名连接),推荐使用名称映射提高可读性; 参数化例化方法,通过parameter实现可配置模块设计; 多层模块嵌套的实战应用,展示复杂设计的层次化实现。 文章通过2位加法器等代码示例,对比分析了不同例化方式的优缺点,为硬件设计中的模块复用提供了实用指导。重点推荐名称映射和参数化设计方法,以提高代码可维护性和设计灵活性。

m0_58476824的博客 1326

iPad秒变Mac副屏的隐藏技巧:用BetterDisplay实现无线竖屏+90度锁定

本文详细介绍了如何利用BetterDisplay软件突破苹果原生“随航”(Sidecar)功能的限制,将iPad无线设置为Mac的竖屏副屏,并实现90度方向锁定。通过创建虚拟显示器、配置分辨率与旋转参数,并校准鼠标指针,用户可以高效利用iPad的纵向空间进行文档阅读、编码等工作,显著提升多屏协作效率。

weixin_29266647的博客 603

Joda - 日期时间

一、Joda-Time 介绍 任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个 时间点之间的路径。使用 JDK 完成这项任务将非常痛苦和繁琐。 既然无法摆脱时间,为何不设法简化时间处理?现在来看看 Joda Time,一个面向 Java™ 平台的易于 使用的开源时间/日期库。正如您在本文中了解的那样,JodaTime轻松化解了处理日期和时间...

4423

车载以太网入坑指南,从小白到懂哥的进阶之路【技术分享】

各位技术大佬们好!最近公司项目涉及到车载以太网,刚开始完全懵逼,花了大半个月时间各种查资料、测试设备,总算是摸清了门道。想着互联网上卧虎藏龙,肯定有不少大佬对这个技术感兴趣,所以写个帖子分享一下,顺便求各位大佬指点。

starelink的博客 1260

Joda-Time使用手册

简介 Joda-Time 令时间和日期值变得易于管理、操作和理解。事实上,易于使用是 Joda 的主要设计目标。其他目标包括可扩展性、完整的特性集以及对多种日历系统的支持。并且 Joda 与 JDK 是百分之百可互操作的,因此您无需替换所有 Java 代码,只需要替换执行日期/时间计算的那部分代码。本文主要就...

weixin_34267123的博客 248

Linux 内核参数:meminfo

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。本文要分析的节点meminfo是Linux 操作系统中查看系统内存最准确(meminfo 中有内存黑洞)的方法,它包含当前时刻系统的所有物理页面的信息。

私房菜 2413

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

ABB机器人与S7-1200PLC实现位置坐标数据发送和接收的具体方法

Robot_PLC_HMI_Automation 2916

Joda-Time用户指导

1 引言        Joda-Time就像一座冰山,90%的代码对于用户代码都是不可见的。许多,可能是大多数的应用程序从来不需要知道它底层是如何实现的。这个文档是为普通用户提供Joda-Time API的入门指导,而不是为API开发者。     文档大部分只提供了代码片段,以说明大多数的普通使用场景。我们重点是介绍DateTime、Interval、Duration和Period类。

wusandi的专栏 1256

华为OD机试真题 新系统2026-04-01 C语言 实现【计算数列位置N的值】

1、输入M、N两个数,则按照以下规则形成一个数列; 2、数列的前M个元素的值为1到M; 3、从M+1个元素开始,计算的逻辑为: 如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;

MISAYAONE的博客 588

Joda-Time的使用

简介    Java中处理时间与日期是很常见的操作,jdk中基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大。于是就诞生了Joda-Time这个专门处理日期时间的库。(JDK1.8的API已经重写了日期库,引入的java.time包,其实也是借鉴了Joda-Time) 依赖jar包 joda-time joda-time 2.

淋雨一直走啊 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

日期处理第一篇:优雅好用的Java日期工具类Joda-Time

日常开发中,处理时间和日期是很常见的需求。基础的java内置工具类只有Date和Calendar,但是这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。

分享技术,记录思考和感悟 2689

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Joda-Time迁移指南:从JDK日期到Joda-Time的完整教程

如果你还在为Java中复杂的日期时间处理而烦恼,Joda-Time正是你需要的解决方案!🎯 作为Java SE 8之前最广泛使用的日期时间库替代方案,Joda-Time提供了直观、易用的API,彻底解决了传统JDK日期类的各种痛点。 ## 为什么需要从JDK日期迁移到Joda-Time? 🤔 传统的`java.util.Date`和`Calendar`类存在着诸多问题: - **线程不安

gitblog_00740的博客 853

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Joda-Time完全指南:从入门到精通Java日期时间处理

Joda-Time是Java SE 8之前广泛使用的日期和时间类库的优质替代品,为Java开发者提供了强大而直观的日期时间处理能力。这个开源项目彻底改变了Java处理日期时间的复杂方式,让时间操作变得简单优雅。🚀 ## 为什么选择Joda-Time? 在Java 8之前,Java内置的日期时间API存在着诸多问题:线程不安全、设计混乱、时区处理复杂等。Joda-Time通过以下优势解决了这些

gitblog_00879的博客 1153

joda-time快速上手指导

快速上手指导 这份指南是对joda-time的一个简介。想查看更多信息请参考完整的用户指南。日期和时间日期和时间是一个 十分复杂的领域。joda-time中设计了许多类来完整地阐述这个范畴的细微差别 。

yx91490的专栏 521

java joda time_使用Joda-Time优雅的处理日期时间

原标题:使用Joda-Time优雅的处理日期时间在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。由于Joda-Time很优秀,在Java 8出现前的很长时间内成为Java中日期时间处理的事实标准,用来弥补JDK的不足。在Java 8中引入的java....

weixin_34345947的博客 451

Java时间处理之org.joda.time.DateTime

文章目录org.joda.time.DateTime常用工具 Java实现方法索引 org.joda.time.DateTime常用工具 Java实现 org.joda.time scala 版本实现的地址 https://blog.youkuaiyun.com/whgyxy/article/details/86554624 java原生的时间处理函数实在是无力吐槽,太难用了。后来找到一个非常好用的时间处...

whgyxy的博客 1万+

【类库】java时间操作类库:Joda-Time

功能直接跟当前时间比较返回Date/Calendar时间计算,加年/月/日/时分秒时区设置withZone常用函数//获取当前年//世纪年//获取月份//这周是今年的第几周//这天是今年的第几天//月份的多少好//一个星期的第几天依赖joda-timejoda-time2.9.4/***/@Test//2016/9/2//当前时间//如果无参,也默认是当前时间的show(dt);@Test//把年改为2000年的。

2401_85112250的博客 615

joda-time处理时间

java处理时间几种方式

lemon的博客 481

java 时间类 joda_使用Joda-Time优雅的处理日期时间

在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。由于Joda-Time很优秀,在Java 8出现前的很长时间内成为Java中日期时间处理的事实标准,用来弥补JDK的不足。在Java 8中引入的java.time包是一组新的处理日期时间的API,遵守J...

weixin_26875109的博客 766

joda-time使用心得,解决方法

joda-time使用心得 1.如何将JavaDate转换为JodaDateTime: 我们在使用joda-time的时候难免会跟dataObject类里面的JavaDate打交道,但是不转换还是用不了,这里提供了解决方案: Date date = new Date(); DateTime dateTime = new DateTime(date); 相反,也可以反过来转换回去 Date dat...

kingtok的博客 783

Gson Joda Time 序列化器使用教程

Gson Joda Time 序列化器使用教程 1. 项目介绍 gson-jodatime-serialisers 是一个用于处理 Joda Time 实体的 Gson 序列化器/反序列化器集合。该项目的主要目的是简化 Joda Time 对象与 JSON 之间的转换,尽可能使用 ISO 8601 字符串表示法。支持的 Joda Time 类包括 DateMidnight、DateTime、Dat...

gitblog_00034的博客 889

Joda-Time 工具类的使用

Joda-time 简单出来时间库。 导入maven 工程jar包 &lt;dependency&gt; &lt;groupId&gt;joda-time&lt;/groupId&gt; &lt;artifactId&gt;joda-time&lt;/artifactId&gt; &lt;version&gt;2.9.2&lt;/vers...

huana的博客 1万+
上一篇: Linux系统下Redis的安装与配置
下一篇: Redis的5种数据类型及常用命令
Galen-gao
博客等级 码龄9年 931粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值