使用原生Java操作时间是比较麻烦的,比如说简单的创建一个指定时间

String time = "2018-7-3 11:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {date = sdf.parse(time);
} catch (ParseException e) {e.printStackTrace();
}
System.out.println(date);

以上代码会输出

Wed Jan 03 11:00:00 CST 2018

再来看看Java官方推荐的Calendar类,实现相同的功能

Calendar calendar = Calendar.getInstance();
calendar.set(2018, 6, 3, 11, 0, 0);
Date time = calendar.getTime();
System.out.println(time);

也很麻烦,要是使用Joda呢

DateTime dateTime = new DateTime(2018, 7, 3, 11, 0, 0);
System.out.println(dateTime.toDate());

只需一行代码,本就该一行代码,这本就是个很简单的功能。

joda创建时间对象时需要指定时区,如果不指定,默认会把时区设置为运行代码的机器所在的时区。

joda是线程安全的,和String一样,采用了一种简单粗暴的方式来实现线程安全。

求指定时间三天后的时间
DateTime dateTime1 = dateTime.plusDays(3);
System.out.println(dateTime1.toDate());

求指定时间三月之后的时间

DateTime dateTime2 = dateTime.plusMonths(3);
System.out.println(dateTime2.toDate());

将joda日期对象转成jdk日期Date对象:

Date date1 = new Date(dateTime2.getMillis());
System.out.println(date1);

将jdk日期对象专成jdk Calendar日期对象:

Calendar calendar1 = dateTime.toCalendar(Locale.getDefault());
System.out.println(calendar1);

Java的时间类库joda教程相关推荐

  1. JAVA8时间类库与JodaTime

    导读 本文会先简单说明旧版本JDK中的日期-时间API中存在的一些问题,接着会介绍Joda-Time这个优秀的日期-时间类库,最后介绍JAVA8中的新的时间类库.如果你已经了解其中一个,那么可以选择阅 ...

  2. java日期时间库-常用案例-不保留全分享

    java日期时间库-常用案例-不保留全分享 除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使 ...

  3. Java 8时间和日期API 20例

    本文由  ImportNew -  Sandy 翻译自  javarevisited.欢迎加入 翻译小组.转载请见文末要求. 伴随lambda表达式.streams以及一系列小优化,Java 8 推出 ...

  4. 面试时,当你有权提问时,别客气,这是个逆转的好机会(内容摘自Java Web轻量级开发面试教程)...

    前些天,我在博客园里写了篇文章,如何在面试中介绍自己的项目经验,收获了2千多个点击,这无疑鼓舞了我继续分享的热情,今天我来分享另外一个面试中的甚至可以帮助大家逆转的技巧,本文来是从 java web轻 ...

  5. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程...

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  6. Java 13 的下载安装教程

    Java 13 的下载安装教程 说明: 本文介绍的是 Windows 下安装 Java 的方法.对于 Linux 下 Java 的安装,可见笔者的另一篇博客: 在 Linux 操作系统中安装 Java ...

  7. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  8. java的基础类库称为_JAVA基本类库介绍

    8.1 包的概念 包是由.class文件组成的一个集合,.class文件时可以用Java解释其解释执行的文件,它也是由Java源的文件,即.Java文件经编译而生成的.Java是一种面向对象的语言,它 ...

  9. java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间

    正文之前 终于好像仿佛看完了菜鸟教程的Java课程,感觉自己收获颇丰!很好,Java看完之后正愁如何开始进阶呢!结果发现菜鸟还准备了Java实例这种好东西!简直就是教程界的良心啊 !!!没事,先写写笔 ...

最新文章

  1. java 初始化hashmap_java – 如何直接初始化HashMap(以字面方式)...
  2. python怎么随机生成数据_Python-随机生成数据
  3. Windows安装python 虚拟环境,Virtualenv
  4. Vue注意事项及用得较多的属性归纳
  5. RabbitMQ绑定(bindings)
  6. SQLSERVER复制订阅中的数据库版本选择
  7. java boolean if_Java if(boolean)和if(boolean=true)区别解析
  8. asp adodb连接mysql数据库语句_ASP连接MySQL数据库的方法
  9. python小例子之8 -- decorator的使用
  10. 前台html基础标签7.6
  11. linux 命令 — 文件相关
  12. centos6/7修改主机名的正确方法
  13. accept搭配用法_accept的固定搭配及用法
  14. linux系统工具栏调整,Ubuntu 7.10任务栏不见了的解决办法
  15. 非计软专业的学生也能看懂的面向对象编程(《面向对象编程是怎样工作的》平野章/著 读书笔记)
  16. 二元置信椭圆r语言_医学统计R语言:分面画boxplot
  17. OSChina 周五乱弹 ——国庆第六天,每逢佳节胖三斤
  18. 4G+5G多卡聚合智能融合通信
  19. 电脑显示没有wifi连接到服务器地址,WIFI无ip分配怎么解决
  20. 计算机软件专业可以考哪些证书

热门文章

  1. 防抖(debounce) 和 节流(throttling)的封装使用-最终发布npm
  2. Mac在有S.M.A.R.T错误的情况下安装OSX系统
  3. 复习一波,hashMap的底层实现原理
  4. [内存泄漏]pppd程序导致的内存泄漏
  5. 农村也可以干大事业,小伙返乡种植葡萄,年收益达100万
  6. 我也来一个“羊了个羊”
  7. 基于pyqt5 构建弹窗进度条,在大型计算中实时显示进度
  8. 计算机导论11.29课后总结
  9. DFM文件以及写该文章的原因等等
  10. JS学习之BOM | 常见网页特效 | 轮播图 | 返回顶部 | 筋斗云案例