【类库】java时间操作类库:Joda-Time
2016-09-02 00:51
405 查看
简介
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();//一个星期的第几天
依赖
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.4</version> </dependency>
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时间操作类库:Joda-Time
- java开源时间框架joda-time简单使用的junit实例
- Java|Joda-Time简化时间处理利器
- Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
- Joda-Time 操作常用时间函数
- Java 日期处理类库Joda-Time简介
- [Java]Java日期及时间库插件 -- Joda Time.
- FluctuationTime.jar java日期时间操作:增减时间、取时间间隔、取年、取月、取日、取时、取分、取秒、日期时间比较大小精确到年月日时分秒 取当月有多少天 日期时间自由操作精确到秒
- Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
- Java时间计算工具joda-time
- [Java]Java日期及时间库插件 -- Joda Time.
- Java常用类库之时间操作类——Date、Calendar、DateFormat、SimpleDateFormat及实例操作
- Joda-time是java处理时间非常棒的jar
- JODA-Time 日期与时间类库的学习
- java中的时间操作
- JAVA中的时间操作
- java中的时间操作
- java中关于时间日期操作的常用函数
- java中关于时间日期操作的常用函数
- java中的时间操作一