JodaTime用法简介
JodaTime用法简介
Java的Date和Calendar用起来简直就是灾难,跟C#的DateTime差距太明显了,幸好有JodaTime
本文简单罗列JodaTime的用法
package com.chzhao.jodatest;
import java.util.Calendar;
import java.util.Date;
import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.Duration;
import org.joda.time.Interval;
import org.joda.time.Months;
import org.joda.time.Period;
import org.junit.Test;
public class JodaDemo {
	@Test
	public void testVoid() {
		Date dt = this.newDate();
		System.out.println(dt);
		this.dateTime2String(new DateTime(dt));
		this.addTime();
		this.intervalTest();
		this.periodTest();
	}
	@Test
	public void testNewDate0() {
		JodaDemo demo = new JodaDemo();
		System.out.println(demo.newDate());
	}
	public Date newDate() {
		DateTime dt = new DateTime(2012, 12, 13, 18, 23, 55);
		dt = new DateTime(Calendar.getInstance());
		dt = new DateTime(new Date());
		return dt.toDate();
	}
	public void dateTime2String(DateTime dateTime) {
		String str2 = dateTime.toString("MM/dd/yyyy hh:mm:ss.SSSa");
		String str3 = dateTime.toString("dd-MM-yyyy HH:mm:ss");
		String str4 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");
		String str5 = dateTime.toString("MM/dd/yyyy HH:mm ZZZZ");
		String str6 = dateTime.toString("MM/dd/yyyy HH:mm Z");
		System.out.println(str2);
		System.out.println(str3);
		System.out.println(str4);
		System.out.println(str5);
		System.out.println(str6);
	}
	public void intervalTest() {
		DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
		DateTime end = new DateTime(2005, 1, 1, 0, 0, 0, 0);
		Interval interval = new Interval(start, end);
		System.out.println(interval.toString());
	}
	public void periodTest() {
		DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
		DateTime end = new DateTime(2006, 1, 1, 0, 0, 0, 0);
		// period of 1 year and 7 days
		Period period = new Period(start, end);
		// calc will equal end
		DateTime calc = start.plus(period);
		// able to calculate whole days between two dates easily
		Days days = Days.daysBetween(start, end);
		// able to calculate whole months between two dates easily
		Months months = Months.monthsBetween(start, end);
	}
	public void durationTest() {
		DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
		DateTime end = new DateTime(2005, 1, 1, 0, 0, 0, 0);
		// duration in ms between two instants
		Duration dur = new Duration(start, end);
		// calc will be the same as end
		DateTime calc = start.plus(dur);
	}
	public void addTime() {
		DateTime dateTime1 = DateTime.parse("2012-12-03");
		dateTime1 = dateTime1.plusDays(30);
		dateTime1 = dateTime1.plusHours(3);
		dateTime1 = dateTime1.plusMinutes(3);
		dateTime1 = dateTime1.plusMonths(2);
		dateTime1 = dateTime1.plusSeconds(4);
		dateTime1 = dateTime1.plusWeeks(5);
		dateTime1 = dateTime1.plusYears(3);
		DateTime dt = new DateTime();
		DateTime year2000 = dt.withYear(2000);
		DateTime twoHoursLater = dt.plusHours(2);
		System.out.println(year2000);
		System.out.println(twoHoursLater);
		String monthName = dt.monthOfYear().getAsText();
		System.out.println(monthName);
		System.out.println(dateTime1.toString("MM/dd/yyyy hh:mm:ss.SSSa"));
	}
}
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.chzhao</groupId>
	<artifactId>jodatest</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>jodatest</name>
	<url>http://maven.apache.org</url>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>2.6</version>
		</dependency>
	</dependencies>
</project>
JodaTime用法简介的更多相关文章
- IOS NSInvocation用法简介
		IOS NSInvocation用法简介 2012-10-25 19:59 来源:博客园 作者:csj007523 字号:T|T [摘要]在 iOS中可以直接调用某个对象的消息方式有两种,其中一种就是 ... 
- Apache自带压力测试工具ab用法简介
		ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ... 
- Postman用法简介
		转自:http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 转载 2016年10月10日 09:04:10 10 ... 
- MSSQL Sql加密函数 hashbytes 用法简介
		转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashbytes函数功能为:返回一个字符,通过 MD2.MD4.MD5. ... 
- java assert的用法简介【转】
		assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ... 
- glVertexAttribPointer 用法简介
		在内存中采用交叉模式存储,向gpu传入顶点数据的方法 GPU: #version 100 attribute highp vec2 aPosition; attribute highp vec2 a ... 
- C#中IPAddress类/Dns类/IPHostEntry类/IPEndPoint用法简介
		C#中IPAddress类/Dns类/IPHostEntry类/IPEndPoint用法简介 IP是一种普遍应用于因特网.允许不同主机能够相互找到对方的寻址协议.IP地址由4个十进制的数字号码所组成, ... 
- Postman用法简介----https://blog.csdn.net/flowerspring/article/details/52774399
		https://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 
- SpringBoot系列之@Conditional注解用法简介
		SpringBoot系列之@Conditional注解用法简介 引用Spring官方文档的说法介绍一下@Conditional注解:Spring5.0.15版本@Conditional注解官方文档 @ ... 
随机推荐
- hdu 2372 El Dorado (dp)
			题目链接 题意:给n个数字, 求有k个数字的上升子序列有多少种. 思路:d[i][j]表示 以第i个元素为 子序列的最后一个元素,长度为j的子序列 有多少种. 比赛的时候 光想着用组合数做了..... ... 
- VS2005中乱码问题
			VS2005打开某些文件(如.inc, js)的时候出现乱码: 解决方法: 工具 --> 选项 --> 文本编辑器 --> 将“自动检测不带签名的 UTF-8编码”选中保存即可. V ... 
- snv的绑定,检出,同步
			svn安装 http://www.android100.org/html/201511/15/196792.html svn绑定Studio 显示svn图标 效果图 
- uestc 1721 吴神,人类的希望
			// 将n个相同的球放进m个盒子 盒子不为空的方法总数// dp[i][j] 表示i个盒子 j个球的方法总数// 递推关系 dp[i][j]=dp[i-1][j-1]+d[i][j-i]// a. i ... 
- 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)
			Java获得当前时间 java.util.Date date = new java.util.Date(); Timestamp time = new Timestamp(date.getTime() ... 
- 【转】Linux时间函数之gettimeofday()函数之使用方法
			原文网址:http://blog.csdn.net/tigerjibo/article/details/7039434 一.gettimeofday()函数的使用方法: 1.简介: 在C语言中可以使用 ... 
- Xcode中使用svn时,报证书验证错误Error validating server certificate for
			转:http://blog.csdn.net/yhawaii/article/details/7511141 今天使用Xcode自带的svn客户端时,总是连接不上服务器,报如下错误: Error va ... 
- 解决:Unable to connect to repository https://dl-ssl.google.com/android/eclipse/site.xml
			ailed to fectch URl https://dl-ssl.google.com/android/repository/addons_list.xml, reason: Connection ... 
- XA事务处理
			XA接口详解 X/Open XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁.事务管理器控制 ... 
- C#实现APK自动打包
			C#实现APK自动打包 最近做了一个安卓项目,其中有一个自动打包的功能,要把供应商id写入APK后打包. 一.思路 在AndroidMinifest.xml中加入一个标识字段,如下 ... 
