1 Joda-Time简介

Joda-Time是一个面向Java应用程序的日期/时间库的替代选择。它令时间和日期值变得易于管理、操作和理解。

  • 替代Calendar类,简化日期时间操作。
  • 格式化输出日期时间。
  • Joda-Time与JDK之间百分百实现可互操作。

官网地址: https://www.joda.org/joda-time/

2 Joda-Time使用

2.1 引入jar包

<!-- 引入Joda-Time日期时间操作jar -->
<dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>2.10.5</version>
</dependency>

2.2 Instant类(瞬时时间点)

  • 用来表示一个事件发生的时间戳。
  • 该类使用1970-01-01 00:00:00开始到未来某一刻的毫秒总数。
  • 与所使用的日历系统或所在的时区无关。

2.2.1 获取当前时间戳

//获取设置为当前系统毫秒时间的Instant对象
Instant instant = Instant.now();
//获取Instant对象的瞬时的毫秒数
System.out.println("当前时间戳:" + instant.getMillis());

2.2.2 获取当前时间前后十分钟时间戳(加减)

Instant instant = Instant.now();
//当前时间前10分钟时间戳
long beforeMillis = instant.minus(10 * 60 * 1000).getMillis();
System.out.println("前十分钟时间戳:" + beforeMillis);
//当前时间后10分钟时间戳
long afterMillis = instant.plus(10 * 60 * 1000).getMillis();
System.out.println("后十分钟时间戳:" + afterMillis);

2.2.3 获取指定时间戳时间

//获取指定时间戳的时间
Instant instant = Instant.ofEpochMilli(System.currentTimeMillis() - 10 * 6 * 1000);
System.out.println("当前时间前十分钟:" + instant.toString());

2.2.4 获取输入字符串日期值

String datetime = "2020-06-15";
Instant instant = Instant.parse(datetime, DateTimeFormat.forPattern("yyyy-MM-dd"));
System.out.println("获取时间值:" + instant.toDate());

2.2.5 判断俩日期值大小

String datetime = "2020-06-15";
Instant instant = Instant.parse(datetime, DateTimeFormat.forPattern("yyyy-MM-dd"));
//判断输入日期是否在当前日期之后
boolean flag1 = instant.isAfter(Instant.now());
//判断输入日期是否在当前日期之前
boolean flag2 = instant.isBefore(Instant.now());
System.out.println(flag1);
System.out.println(flag2);

2.3 DateTime类(处理日期时间)

  • 用来处理日期时间的一些操作。

2.3.1 获取时间的相关信息

//初始化当前系统时间
DateTime dateTime =new DateTime();
//当前年份
int year = dateTime.getYear();
//当前月份
int month = dateTime.getMonthOfYear();
//当前月多少号
int day = dateTime.getDayOfMonth();
//当前小时
int hour = dateTime.getHourOfDay();
//当前分钟
int minute = dateTime.getMinuteOfHour();
//当前秒
int second = dateTime.getSecondOfMinute();System.out.println("year = " + year);
System.out.println("month = " + month);
System.out.println("day = " + day);
System.out.println("hour = " + hour);
System.out.println("minute = " + minute);
System.out.println("second = " + second);

2.3.2 时间加减操作

//初始化当前系统时间
DateTime dateTime =new DateTime();
//当前日期上一年日期
DateTime beforeYear = dateTime.minusYears(1);
//当前日期后一年日期
DateTime lastYear = dateTime.plusYears(1);
//当前日期上个月日期
DateTime beforeMonth = dateTime.minusMonths(1);
//当前日期下个月日期
DateTime lastMonth = dateTime.plusMonths(1);
//当前日期前天日期
DateTime beforeDay = dateTime.minusDays(1);
//当前日期明天日期
DateTime lastDay = dateTime.plusDays(1);
//指定格式输出日期字符串
System.out.println("beforeYear = " + beforeYear.toString("yyyy-MM-dd"));
System.out.println("lastYear = " + lastYear.toString("yyyy-MM-dd"));
System.out.println("beforeMonth = " + beforeMonth.toString("yyyy-MM-dd"));
System.out.println("lastMonth = " + lastMonth.toString("yyyy-MM-dd"));
System.out.println("beforeDay = " + beforeDay.toString("yyyy-MM-dd"));
System.out.println("lastDay = " + lastDay.toString("yyyy-MM-dd"));
  • plusXXX:表示日期值加操作
  • minusXXX:表示日期值减操作

2.3.3 设置日期时间操作

//初始化当前系统时间
DateTime dateTime =new DateTime();
//设置年月日
DateTime dateTime1 = dateTime.withDate(2019, 5, 12);
//设置年
DateTime dateTime2 = dateTime.withYear(2018);System.out.println("dateTime1 = " + dateTime1.toString("yyyy-MM-dd"));
System.out.println("dateTime2 = " + dateTime2.toString("yyyy-MM-dd"));
  • withXXX:设置对应的时间日期

注:LocalDate LocalTime LocalDateTime 和 DateTime方法类似。

Joda-Time包基础应用相关推荐

  1. 数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识

    #2018-03-22 10:23:16 March Thursday the 12 week, the 081 day SZ SSMR http://blog.csdn.net/eastmount/ ...

  2. Python基础16-模块与包基础01

    目录 初识模块和包 Python常用的内置模块 关键字import和from import.from查找的路径 如何调用 __name__与模块执行 __name__的用法(单元测试) 初识模块和包 ...

  3. Python基础17-模块与包基础02、常用模块之time、random

    目录 名字冲突与避免 设置BASE_DIR保证程序能找到模块位置 time random 名字冲突与避免 在test.py里写下面一段代码,用正则表达式包re进行匹配,匹配出123开头的字符.如果我们 ...

  4. 【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

    前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:   ...

  5. R语言爬虫之rvest包——基础详细介绍+示例

    为什么要学习R语言 都说Python爬虫功能强大,其实遇到动态加载或者登陆网站Python还是很困难,对于大部分的一些普通爬虫,R语言还是很方便.这里介绍R语言rvest包爬虫,主要用到函数:read ...

  6. 网卡收包基础: 中断-轮询-ring buffer-DMA-NAPI

    参考链接: NAPL模式 NAPL简介 硬中断和软中断 中断与轮询的区别一 ring buffer 一. 中断 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号 ...

  7. java8 joda_Java基础之如何取舍Joda与 Java8 日期库

    在 Java8 以前,时间和日期的类库很难用,而且有线程安全等诸多问题. Joda time 弥补了 Java 在这方面的不足,但是在 Java8 时,增加了 java.time 包,对 Java 在 ...

  8. Wireshark数据抓包教程之Wireshark的基础知识

    Wireshark数据抓包教程之Wireshark的基础知识 Wireshark的基础知识 在这个网络信息时代里,计算机安全始终是一个让人揪心的问题,网络安全则有过之而无不及.Wireshark作为国 ...

  9. Udacity机器人软件工程师课程笔记(九)-ROS-Catkin包、工作空间和目录结构

    Catkin包和工作空间 1.Carkin包简介 Catkin是ROS的官方构建系统,也是原始ROS构建系统rosbuild的继承者.catkin结合了CMake宏和Python脚本,在CMake的正 ...

最新文章

  1. PHP文件头部(header)解释
  2. 代码整洁之道----读书笔记
  3. Fragment重影(重叠)白屏等问题原理解析,以及解决方案
  4. 《系统集成项目管理工程师》必背100个知识点-51项目人力资源管理
  5. 2套RAC环境修改scanip后客户端连接异常
  6. Composer 安装时要求输入授权用户名密码
  7. easyUI之ComboBox(下拉列表框)
  8. EF RepositoryBase 参考示例【转】
  9. 解决升级Win 10 IP 10122后无法调试UAP应用的方法
  10. 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表...
  11. log日志java web_Java Web log4j (日志)
  12. 【极限精简888M,老机专用】星岚技术 Win7 x64 深度精简版 V2020.10
  13. 使用SimHash进行海量文本去重
  14. 小白的jquery学习之路之04效果新闻向上无缝循环显示
  15. [DEFCON全球黑客大会] CTF(Capture The Flag)
  16. 电商系统,商品属性表和功能设计,可用于各种实体的属性
  17. FPGA控制DDR读写(AXI4总线接口)
  18. 对于嵌入式为什么要有uboot的深度解析
  19. android 虚拟机介绍
  20. 网站排名SEO优化方案(2022最新)

热门文章

  1. 基于PHP+Mysql全品类在线购物商城设计
  2. Android计步器获取手机步数
  3. java使用poi操作world生成饼图,柱状图,折线图,组合图:一
  4. 搭建VUE大屏展示项目(一)环境搭建
  5. 2022年起重机司机(限桥式起重机)考试试题模拟考试平台操作
  6. Linux 硬盘管理工具
  7. 面试续与如何做自己的职业规划
  8. [视频整理]使您成为windows专家的一些学习习惯
  9. JavaDoc文档生成
  10. 如何往云服务器上装虚拟机,如何在虚拟机安装linux