http://www.joda.org/joda-time/

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

pom依赖:

<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.4</version>
</dependency>

后续补充

 import org.joda.time.DateTime;

 /**
*/
public class Example2 {
public static final String FORMAT_DATE_WEEK_MS="E MM/dd/yyyy HH:mm:ss.SSS";
public static final String FORMAT_DATE_MS="yyyy/MM/dd HH:mm:ss.SSS";
public static final String FORMAT_DATE_S="yyyy/MM/dd HH:mm:ss";
//按照format格式打印时间
public static void displayDate(DateTime dateTime,String format){
String timeStr=dateTime.toString(format);
System.out.println(timeStr);
}
public static void main(String[] args) {
//一、创建一个时间点
DateTime dateTime1=new DateTime(2016,8,4,19,19,40,12);//年,月,日,时,分,秒,毫秒
displayDate(dateTime1,FORMAT_DATE_MS);
displayDate(dateTime1,FORMAT_DATE_S);
displayDate(dateTime1,FORMAT_DATE_WEEK_MS);
//这种填写参数方法至少填写到小时,否则要填写long型的时间戳
dateTime1=new DateTime(2016,8,4,19,19);
displayDate(dateTime1,FORMAT_DATE_S);
}
}
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.LocalDate;
import org.joda.time.Period; import java.util.Locale; /**
*/
public class Example1 {
//DateTime 时间+日期
public static boolean isAfterPayDay(DateTime datetime) {
if (datetime.getMonthOfYear() == 2) { // February is month 2!!
return datetime.getDayOfMonth() > 26;
}
return datetime.getDayOfMonth() > 1;
} public static void isAfterPayDayTest(){
DateTime dateTime=new DateTime(); System.out.println(isAfterPayDay(dateTime));
System.out.println(dateTime.toDate());
}
//LocalDate 日期 没有时间
public static Days daysToNewYear(LocalDate fromDate) {
LocalDate newYear = fromDate.plusYears(1).withDayOfYear(1);
System.out.println(newYear.toDate());
newYear = fromDate.plusYears(1);
System.out.println(newYear.toDate());
return Days.daysBetween(fromDate, newYear);
} public static void daysToNewYearTest()
{
LocalDate date=new LocalDate();
System.out.println(daysToNewYear(date));
} //Period 进行时间加减
public static boolean isRentalOverdue(DateTime datetimeRented) {
Period rentalPeriod = new Period().withDays(2).withHours(12);
System.out.println(datetimeRented);
System.out.println(datetimeRented.toDateTime());
System.out.println(datetimeRented.plus(rentalPeriod).toDateTime());
return datetimeRented.plus(rentalPeriod).isBeforeNow();
} public static void isRentalOverdueTest(){
DateTime dateTime=new DateTime();
System.out.println(isRentalOverdue(dateTime));
} public static String getBirthMonthText(LocalDate dateOfBirth) {
System.out.println(dateOfBirth.monthOfYear().getAsString());
return dateOfBirth.monthOfYear().getAsText(Locale.ENGLISH);
} public static void getBirthMonthTextTest(){
LocalDate date=new LocalDate();
System.out.println(getBirthMonthText(date));
} public static void main(String[] args) {
System.out.println("test1 ******************");
isAfterPayDayTest();
System.out.println("test2 ******************");
daysToNewYearTest();
System.out.println("test3 ******************");
isRentalOverdueTest();
System.out.println("test4 ******************");
getBirthMonthTextTest();
}
}

14 java 日期处理 joda-time的更多相关文章

  1. Java - 14 Java 日期时间

    java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...

  2. JAVA 基础编程练习题14 【程序 14 求日期】

    14 [程序 14 求日期] 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况, 闰年且输入 ...

  3. Java 日期处理类库Joda-Time简介

    http://www.ibm.com/developerworks/cn/java/j-jodatime.html 登录 (或注册) 中文 IBM 技术主题 软件下载 社区 技术讲座 搜索 devel ...

  4. 全面解析Java日期时间API

    时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间. UTC(Universal Time ...

  5. Java日期时间使用总结

    一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题.   在J ...

  6. Java日期时间使用(转)

    Java日期时间使用总结 转自:http://lavasoft.blog.51cto.com/62575/52975/   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个 ...

  7. java日期格式大全 format SimpleDateFormat(转)

    java日期格式大全 format SimpleDateFormat   /**    * 字符串转换为java.util.Date<br>    * 支持格式为 yyyy.MM.dd G ...

  8. java日期详解

    [TOC] 一.简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的地位比如joda. 文章主要对java日期处理的详解,用1.8可以不用joda. 1. 相关概念 首先 ...

  9. java日期操作常用工具

    java日期操作常用工具 package com..util; import java.sql.Timestamp; import java.text.SimpleDateFormat; import ...

随机推荐

  1. n!(n的阶乘)

    我们在这里介绍一些关于n!的性质. 在计数问题中,经常需要用到n!.有必要了解n!在mod p下的一些性质.下面我们假设p是素数,n!=ape(a无法被p整除),并试图求解e和a mod p(把这个东 ...

  2. [Leetcode][019] Remove Nth Node From End of List (Java)

    题目在这里: https://leetcode.com/problems/remove-nth-node-from-end-of-list/ [标签] Linked List; Two Pointer ...

  3. MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (1)

    公司线上在用partition,有一个表的分区字段错了,需要重建,结果发现没有办法像修改主键字段或者修改索引字段那样直接一条sql搞定.而是需要建临时表,有down time,所以去仔细看了文档,研究 ...

  4. CentOS(Linux) - SVN使用笔记(二) - 创建SVN仓库及下载仓库到本地

    1.安装: 参考文章 CentOS(Linux) - SVN使用笔记(一) -  安装SVN过程及开启和关闭svn服务指令 2.创建仓库 #创建项目目录 mkdir /usr/svn#进入目录cd / ...

  5. HTML5比较实用的代码

    增强IE兼容性 <!--[if IE]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js&q ...

  6. Readonly and other things about C++

    1. in c# readonly can be delayed to initialize in constructor. 2. in c++ totally no readonly. Many p ...

  7. AFNetworking使用总结

    AFNetworking使用总结   关于AFNetworking使用总结 以及一些错误的解决办法. AD:WOT2015 互联网运维与开发者大会 热销抢票 AFNetworking使用总结 分享类型 ...

  8. 怎样制作百度recovery【转】

    由于recovery的硬件相关性比较强,使得recovery的通用性不强,项目组为了降低整个开发的难度,coron项目里面默认是编译生成百度recovery的. 不过还是有很多开发者问私下我,怎样制作 ...

  9. Ubuntu12.04 下svn服务搭建及Windows客户端tortoisesvn的使用

    在Ubuntu服务端搭建apache+svn 在客户端使用Tortoisesvn工具. 第一步 安装SVN $sudo apt-get install subversion 安装成功后系统会自动建立一 ...

  10. HTTP协议细节

    一]客服端  -->  服务端        1>结构            a)请求行            b)请求头            c)请求体:请求的内容,如果没有,就是空白 ...