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. [转]Mac App distribution in App Store

    Mac程序的大包上传和iOS的有些许不同,因为Mac app既可以上传到store,也可以不通过store供人下载.因此,code sign和provision要根据情况(开发,release< ...

  2. hdu 4277 USACO ORZ (暴力+set容器判重)

    USACO ORZ Time Limit: 5000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. Go语言之defer

    defer语句被用于预定对一个函数的调用.我们把这类被defer语句调用的函数称为延迟函数.注意,defer语句只能出现在函数或方法的内部. 一条defer语句总是以关键字defer开始.在defer ...

  4. 移动平台中 meta 标签的使用

    一.meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). 1.http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设定页面 ...

  5. table-cell的手机应用场景

    前言 最近在前端观察看见了这篇老文章,看见了元素居中的5种办法,其中提到了display:table-cell这个css显示的新属性,按照当时的浏览器市场来说想必兼容性会是糟糕的一比,但是现在这坛老酒 ...

  6. AngularJS自定义表单控件

    <!doctype html> <html ng-app="myApp"> <head> <script src="G:\\So ...

  7. NET Core依赖注入解读&使用Autofac替代实现

    NET Core依赖注入解读&使用Autofac替代实现 标签: 依赖注入 Autofac ASPNETCore ASP.NET Core依赖注入解读&使用Autofac替代实现 1. ...

  8. Spark问题记录

    Spark 多线程时的序列化问题  临时记录 Exception in thread "Thread-28" org.apache.spark.SparkException: Ta ...

  9. 怪胎:Android开发ImageView图片无法显示

    今天碰到一个非常奇怪的问题: 在Android中ImageView无法显示加载的本地SDCard图片. 具体过程是:先调用本地照相机程序摄像,然后将拍摄的图片加载在ImageView中显示. publ ...

  10. cf B. Dima and Text Messages

    http://codeforces.com/contest/358/problem/B 先按照题意说的构造一个字符串s,然后与对比的字符串T比较,看看在字符串T中顺序查找有没有字符串S的所有字符,有输 ...