14 java 日期处理 joda-time
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的更多相关文章
- Java - 14 Java 日期时间
java.util包提供了Date类来封装当前的日期和时间. Date类提供两个构造函数来实例化Date对象. 第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函数接收一个参 ...
- JAVA 基础编程练习题14 【程序 14 求日期】
14 [程序 14 求日期] 题目:输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况, 闰年且输入 ...
- Java 日期处理类库Joda-Time简介
http://www.ibm.com/developerworks/cn/java/j-jodatime.html 登录 (或注册) 中文 IBM 技术主题 软件下载 社区 技术讲座 搜索 devel ...
- 全面解析Java日期时间API
时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间. UTC(Universal Time ...
- Java日期时间使用总结
一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式都是非常复杂的问题. 在J ...
- Java日期时间使用(转)
Java日期时间使用总结 转自:http://lavasoft.blog.51cto.com/62575/52975/ 一.Java中的日期概述 日期在Java中是一块非常复杂的内容,对于一个 ...
- java日期格式大全 format SimpleDateFormat(转)
java日期格式大全 format SimpleDateFormat /** * 字符串转换为java.util.Date<br> * 支持格式为 yyyy.MM.dd G ...
- java日期详解
[TOC] 一.简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的地位比如joda. 文章主要对java日期处理的详解,用1.8可以不用joda. 1. 相关概念 首先 ...
- java日期操作常用工具
java日期操作常用工具 package com..util; import java.sql.Timestamp; import java.text.SimpleDateFormat; import ...
随机推荐
- 近期Responsive web design项目经验分享-高分辨率图片处理篇
在高分辨率的情况下 商品的图片难免会失真 怎样才能让商品的图片在高分辨率的情况下 效果不失真 提供用户更好的体验呢 我发现了一个解决方案 不知道是不是你想要的 先上图片对比下效果 左侧是使用后 ...
- PHP 文件写入或追加数据
PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择. file_put_contents() file_put_contents() 函数用于把字 ...
- Android学习笔记--Broadcast, BroadcastReceiver(广播)
参考资料:http://www.cnblogs.com/playing/archive/2011/03/23/1992030.html 在 Android 中使用 Activity, Service, ...
- JNI错误记录--JNI程序调用本地库时JVM崩溃
什么是JNI内存泄露,基本的避免方法 : http://www.ibm.com/developerworks/cn/java/j-lo-jnileak/ 最近的课题中需要用到Spark,同组同学负责的 ...
- [工具]web开发时自动刷新网页:liveReload
传统网页开发流程:用sublime text写好代码,运行,发现问题,再回到sublime text修改,运行…如此往复,十分繁琐.今天看到有人(<LiveReload>讓Sublime ...
- sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。
项目当中如果设计到金额类型的数据,你是否有考虑过为什么不能用float类型. 这里举个例子: DECLARE @price1 FLOAT; SET @price1 = 1; SET @price1 = ...
- PlayerPrefs类
该类用于本地持久化保存与读取数据工作原理是:以键值对的形势将数据保存在文件中.该类可以保存与读取3种基本的数据类型,它们是浮点型.整型和字符串型,涉及的方法如下.SetFloat():保存浮点类型Se ...
- Ruby中的Symbol与字符串
刚开始学Ruby,一下子搞不清其中的Symbol(变量需要加:)和字符串有什么区别,为这么要为语言设计这么一个东西.让我很迷惑. 首先,字符串对象,是不同的.比如"String" ...
- Linux cat和EOF的使用
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...
- Kill 锁,1222:已超过了锁请求超时时段,
应该是你的表体积很大,处理的时候费事,因为几乎所有数据库操作都需要加或多或少的锁,所以会超时.首先你可以使用select * from sys.sysprocesses where blocked&l ...