Joda Time 使用
Joda Time 使用
对于系统的一些时间操作很是不方便,为了方便转化,有时候用date,有时候用timestmp,有时候用calendar,忍不住想更改了.
但是任务巨大,先把笔记收藏了,后面有机会再更改了.下面只是几个使用的例子.
1、 获取今天的开始时间:比如:2014-06-19 00:00:00
//joda
DateTime nowTime = new DateTime();
DateTime startOfDay = nowTime.withTimeAtStartOfDay();
//jdk
Calendar c1 = Calendar.getInstance();
c1.setTimeInMillis(timeInMs);
c1.set(Calendar.HOUR_OF_DAY, 0);
c1.set(Calendar.MINUTE, 0);
c1.set(Calendar.SECOND, 0);
c1.set(Calendar.MILLISECOND, 0);
return c1.getTimeInMillis();
2、 获取今天的结束时间:比如:2014-06-19 23:59:59
//joda
DateTime nowTime = new DateTime();
DateTime endOfDay = nowTime.millisOfDay().withMaximumValue();
//jdk
Calendar c1 = Calendar.getInstance();
c1.setTimeInMillis(timeInMs);
c1.set(Calendar.HOUR_OF_DAY, 23);
c1.set(Calendar.MINUTE, 59);
c1.set(Calendar.SECOND, 59);
c1.set(Calendar.MILLISECOND, 0);
return c1.getTimeInMillis();
3、 获取现在距离今天结束还有多长时间
//joda
DateTimenowTime = new DateTime();
DateTime endOfDay = nowTime.millisOfDay().withMaximumValue();
endOfDay.getMillis()-nowTime.getMillis()
4、 计算两个日期的相隔天数
- JodaTime
//joda
DateTime nowTime = new DateTime();
DateTime futureTime = new DateTime(2015, 10, 1, 0, 0, 0);
Int days = Days.daysBetween(nowTime, futureTime).getDays();
//jdk
public static int getBetweenDay(long startTime, long endTime) {
Calendar start = Calendar.getInstance();
start.setTimeInMillis(startTime);
Calendar end = Calendar.getInstance();
end.setTimeInMillis(endTime);
return (int) ((end.getTimeInMillis() - start.getTimeInMillis()) / 86400000);
}
5、 创建任意时间对象
//Joda-time
DateTime dateTime=new DateTime(2012, 12, 15, 18, 23,55);
//jdk
Calendar calendar=Calendar.getInstance();
calendar.set(2012, Calendar.NOVEMBER, 15, 18, 23,55);
6、 与JDK互操作
//通过jdk时间对象构造
Date date = new Date();
DateTime dateTime = new DateTime(date);
Calendar calendar = Calendar.getInstance();
dateTime = new DateTime(calendar);
// Joda-time 各种操作.....
dateTime = dateTime.plusDays(1) // 增加天
.plusYears(1)// 增加年
.plusMonths(1)// 增加月
.plusWeeks(1)// 增加星期
.minusMillis(1)// 减分钟
.minusHours(1)// 减小时
.minusSeconds(1);// 减秒数
// 计算完转换成jdk 对象
Date date2 = dateTime.toDate();
Calendar calendar2 = dateTime.toCalendar(Locale.CHINA);
7、 加上90天后输出
//joda
DateTime dateTime = new DateTime(2000, 1, 1, 0, 0, 0, 0);
System.out.println(dateTime.plusDays(90).toString("E MM/dd/yyyy HH:mm:ss.SSS");
jdk
Calendar calendar = Calendar.getInstance();
calendar.set(2000, Calendar.JANUARY, 1, 0, 0, 0);
SimpleDateFormat sdf =
new SimpleDateFormat("E MM/dd/yyyy HH:mm:ss.SSS");
calendar.add(Calendar.DAY_OF_MONTH, 90);
System.out.println(sdf.format(calendar.getTime()));
8、 时间的输出显示
//通过标准的 ISO-8601输出
DateTime dateTime = SystemFactory.getClock().getDateTime();
dateTime.toString(ISODateTimeFormat.basicDateTime());
dateTime.toString(ISODateTimeFormat.basicDateTimeNoMillis());
dateTime.toString(ISODateTimeFormat.basicOrdinalDateTime());
dateTime.toString(ISODateTimeFormat.basicWeekDateTime());
//传递 SimpleDateFormat字符串输出
DateTime dateTime = SystemFactory.getClock().getDateTime();
dateTime.toString("MM/dd/yyyy hh:mm:ss.SSSa");
dateTime.toString("dd-MM-yyyy HH:mm:ss");
dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");
dateTime.toString("MM/dd/yyyy HH:mm ZZZZ");
dateTime.toString("MM/dd/yyyy HH:mm Z");
//输出的结果如下:
20090906T080000.000-0500
20090906T080000-0500
2009249T080000.000-0500
2009W367T080000.000-0500
09/06/2009 02:30:00.000PM
06-Sep-2009 14:30:00
Sunday 06 September, 2009 14:30:00PM
09/06/2009 14:30 America/Chicago
09/06/2009 14:30 -0500
参考的博客
Joda Time 使用 - CSDN博客
http://blog.csdn.net/zeus_9i/article/details/32318771
Overview (Joda-Time 2.9.9 API)
http://www.joda.org/joda-time/apidocs/
强大易用的日期和时间库 Joda Time - 坚持而不浮躁 - ITeye博客
http://persevere.iteye.com/blog/1755237
Joda-Time 简介
https://www.ibm.com/developerworks/cn/java/j-jodatime.html
Releases · JodaOrg/joda-time(github架包和源码地址)
https://github.com/JodaOrg/joda-time/releases
Joda Time 使用的更多相关文章
- [Java]Java日期及时间库插件 -- Joda Time.
来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...
- joda jar日期处理类的学习
转载:http://www.open-open.com/lib/view/open1348032952724.html 任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点, ...
- Scala - 处理时间(nscala-time - Joda Time的scala封装)
GITHUB : https://github.com/nscala-time/nscala-time MAVEN : (注意选对scala版本) <dependency> <gro ...
- 解决java.lang.NoSuchMethodError:org.joda.time.DateTime.withTimeAtStartOfDay() Lorg/joda/time/DateTime
问题:项目放在weblogic运行,报错 java.lang.NoSuchMethodError: org.joda.time.DateTime.withTimeAtStartOfDay()Lorg/ ...
- org.joda.time.DateTime 日期格式
最近一直在使用Java,偶尔一次遇到日期(util)的格式转换,心里还是规矩的写着记忆里面的代码,但是在自己测试的时候发现不正确,具体看了下代码,发现这里使用jota的方式编写,顺道查了一下,做了笔记 ...
- joda time, jackson 与 scala 反射
1. scala 反射,获得所有 field name 可以直接从 case class 获得 field 而不必创建实例 (get fields of a class without an inst ...
- Java-小技巧-004-jdk时间,jdk8时间,joda,calendar,获取当前时间前一周、前一月、前一年的时间
1.推荐使用java8 localdate等 线程安全 支持较好 地址 2.joda 一.简述 查看SampleDateFormat源码,叙述有: * Date formats are not syn ...
- 抛java.lang.NoClassDefFoundError: org.joda.time.ReadablePeriod错误
转自:http://www.codeorg.cn/article/detail/qa/542 在进行activiti环境搭建时总是抛出java.lang.NoClassDefFoundError: o ...
- [原创]Spring Boot + Mybatis 简易使用指南(二)多参数方法支持 与 Joda DateTime类型支持
前言 今天在开发练习项目时遇到两个mybatis使用问题 第一个问题是mapper方法参数问题,在参数大于一个时,mybatis不会自动识别参数命名 第二个问题是Pojo中使用Joda DateTim ...
随机推荐
- java 简单实现socket
server端 package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- 将非Maven管理的jar打包到Maven本地资源库
这里有2个案例,需要手动发出Maven命令包括一个 jar 到 Maven 的本地资源库. 要使用的 jar 不存在于 Maven 的中心储存库中. 您创建了一个自定义的 jar ,而另一个 Mave ...
- 基于BP神经网络的字符识别研究
基于BP神经网络的字符识别研究 原文作者:Andrew Kirillov. http://www.codeproject.com/KB/cs/neural_network_ocr.aspx 摘要:本文 ...
- mysql之 MySQL 主从基于position复制原理概述
1 .主从复制简介MySQL 主从复制就是将一个 MySQL 实例(Master)中的数据实时复制到另一个 MySQL 实例(slave)中,而且这个复制是一个异步复制的过程.实现整个复制操作主要由三 ...
- 0. LeetCode 开篇
LeetCode 开篇 很久以前(也许是几天之前,记忆力没那么好),听朋友说过,但是没怎么重视,最近发现自己基础打的不牢(会是会,但是说不出来,说不明白),故借此机会理一理知识点,并复习,巩固相关知识 ...
- unix下网络编程之I/O复用(四)
首先需要了解的是select函数: select函数 #include<sys/select.h> #include<sys/time.h> int select (int m ...
- walle部署系统的使用
在项目开发的时候要管理各种开发 测试 线上环境的代码 部署 回滚等操作 这里可以使用walle walle官网:http://www.walle-web.io/ 学习安装:https://blog.c ...
- hihoCoder#1139(二分+bfs)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后终于准备出海捞船和敌军交战了 ...
- [转载]Python print函数用法,print 格式化输出
使用print输出各型的 字符串 整数 浮点数 出度及精度控制 strHello = 'Hello Python' print strHello #输出结果:Hello Python #直接出字符串 ...
- spring学习六
1: @Valid 注解 @NotNull(message="名字不能为空") private String userName; @Max(value=120,message ...