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 ...
随机推荐
- Git 常用命令详解(三)
转自:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html
- 【LeetCode】075. Sort Colors
Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...
- 《Orange’s 一个操作系统的实现》1.搭建操作系统开发环境
书中给出了两种环境:windows和linux,平台选择根据自己喜好.本人这里选择ubuntu10.04+virtualbox作为开发平台. 1.下载.安装VirtualBox http:// ...
- NuGet学习笔记(2)——vs2015搭建本地NuGet服务器
搭建本地服务器特别简单,新建一个web空项目,按照下图所示搜索安装即可,之后设置hosts 将www.mynuget.com执向本机 运行里面输入c:\windows\system32\drivers ...
- 蓝桥杯 算法训练 ALGO-121 猴子分苹果
算法训练 猴子分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果 ...
- bootstrap简单的签收页面
http://aqvatarius.com/themes/atlant/html/ui-icons.html <%@ Page Language="C#" AutoEvent ...
- 转:Oracle下创建ASM磁盘总结
Oracle下创建ASM磁盘总结 文章转载:https://blog.csdn.net/okhymok/article/details/78791841?utm_source=blogxgwz1 2. ...
- Python数据库(二)-Mysql数据库插入数据
通过python连接mysql数据库,并插入数据 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import pymysql ...
- 在Google Colab中导入一个本地模块或.py文件
模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...
- Shell编程实战 1.1 监控思路架构介绍
监控思路,架构介绍 需求:使用shell定制各种个性化的告警工具,但需要统一化管理,规范化管理. 思路:指定一个脚本包,包含主程序,子程序,配置文件,邮件引擎,输出日志等. 主程序:作为脚本的入口,是 ...