php time java_java时间操作类库:Joda-Time

简介

Joda是一个java的处理时间类库,需要jdk8的支持,是java.time (JSR-310).

来自

今天在无意中学习spring的文档(9.6.2 Annotation-driven Formatting)的Formatter的的源码的时候,发现这个时间类库,由于spring某些功能也依赖这个类库,所以我决定瞧瞧是怎么回事

功能

直接跟当前时间比较 isAfterNow/isBeforeNow/isEqualNow

返回Date/Calendar toDate/toCalendar

时间计算,加年/月/日/时分秒 plusYears/plusMonths/plusDays

时区设置 withZone

常用函数dt.getEra();

dt.getYear();//获取当前年

dt.getWeekyear();

dt.getCenturyOfEra();

dt.getYearOfEra();//世纪年

dt.getYearOfCentury();

dt.getMonthOfYear();//获取月份

dt.getWeekOfWeekyear();//这周是今年的第几周

dt.getDayOfYear();//这天是今年的第几天

dt.getDayOfMonth();//月份的多少好

dt.getDayOfWeek();//一个星期的第几天

依赖

joda-time

joda-time

2.9.4

example code

JodaTimeTest.javapackage com.carl.spring.hello.bean;import org.joda.time.DateTime;import org.joda.time.Duration;import org.joda.time.Period;import org.joda.time.format.DateTimeFormatter;import org.joda.time.format.DateTimeFormatterBuilder;import org.junit.Test;import java.util.Date;import java.util.Locale;/**

* @author Carl

* @date 2016/9/2

*/public class JodaTimeTest { @Test

public void dateTimeTest() { //2016/9/2

//当前时间

java.util.Date juDate = new Date(); //如果无参,也默认是当前时间的

DateTime dt = new DateTime(juDate);

show(dt);

} @Test

public void dateTimeChange() {

DateTime dt = new DateTime(); //把年改为2000年的

DateTime year2000 = dt.withYear(2000); //时间加两个小时

DateTime twoHoursLater = dt.plusHours(2);

show(dt);//2016-9-2 0:16

show(year2000);//2000-9-2 0:16

show(twoHoursLater);//2016-9-2 2:16

} @Test

public void dateTimeText() {

DateTime dt = new DateTime();

String monthName = dt.monthOfYear().getAsText(); //根据地区获取Text

String frenchShortName = dt.monthOfYear().getAsShortText(Locale.CHINA); boolean isLeapYear = dt.year().isLeap();

DateTime rounded = dt.dayOfMonth().roundFloorCopy();

System.out.println(monthName);

System.out.println(frenchShortName);

System.out.println(isLeapYear); //月份的最后一天

System.out.println(dt.dayOfMonth().getMaximumValue());

show(rounded);

} @Test

public void dateTimeArgs() { //实例就能够确定年月日时分秒

DateTime dt = new DateTime(2005, 3, 26, 12, 0, 0, 0); //这里能够进行时间的计算,plus就是加了,周期肯定是那个接口的,里面肯定也有年月日时分秒

DateTime plusPeriod = dt.plus(Period.days(1));

DateTime plusDuration = dt.plus(new Duration(24L*60L*60L*1000L));

show(dt);//2005-3-26 12:0

//减一天

show(dt.plusDays(-1));//2005-3-25 12:0

show(plusPeriod);//2005-3-27 12:0

show(plusDuration);//2005-3-27 12:0

} @Test

public void dataTimeFormat() {

DateTimeFormatter fmt = new DateTimeFormatterBuilder()

.appendDayOfMonth(1)

.appendLiteral('-')

.appendMonthOfYearShortText()

.appendLiteral('-')

.appendTwoDigitYear(1956) // pivot = 1956

.toFormatter();

DateTime dt = new DateTime();

System.out.println(dt.toString(fmt));//2-九月-16

} private void show(DateTime dateTime) {

System.out.println(dateTime.getYear() + "-" + dateTime.getMonthOfYear() + "-" + dateTime.getDayOfMonth() + " " + dateTime.getHourOfDay() + ":" + dateTime.getMinuteOfHour());

}

}

相关标签:java

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值