您的位置:首页 > 其它

总结JODA TIME使用

2018-01-20 00:00 316 查看
摘要: 最近使用时间工具类 joda 和 1.8的时间工具确实不错 但是API 找起来很不熟练最近总结了joda的

Joda-Time提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。

推荐以下博客:

https://my.oschina.net/itommy/blog/845340

// 对象中时间转字符串
new DateTime(javaBean.getDate()).toString("yyyy/MM/dd HH:mm:ss");
// 当前时间转字符串
DateTime.now().toString("yyyy-MM-dd");
// 当前时间的后一天字符串
new DateTime().plusDays(1).toString("yyyy-MM-dd HH:mm:ss"));
// 当前时间的前一个月字符串
new DateTime().plusMonths(-1).toString("yyyy-MM-dd HH:mm:ss"));

附上几个例子:

1、创建任意时间对象

Java代码

//jdk
Calendar calendar=Calendar.getInstance();
calendar.set(2012, Calendar.NOVEMBER, 15, 18, 23,55);

//Joda-time
DateTime dateTime=new DateTime(2012, 12, 15, 18, 23,55);

2、计算两日期相差的天数

Java代码

//jdk
Calendar start = Calendar.getInstance();
start.set(2012, Calendar.NOVEMBER, 14);

Calendar end = Calendar.getInstance();
end.set(2012, Calendar.NOVEMBER, 15);

long startTim = start.getTimeInMillis();
long endTim = end.getTimeInMillis();
long diff = endTim-startTim;
int days=(int) (diff/1000 / 3600 / 24);

//joda-time
LocalDate start=new LocalDate(2012, 12,14);
LocalDate end=new LocalDate(2012, 12, 15);
int days = Days.daysBetween(start, end).getDays();


3、获取18天之后的某天在下个月的当前周的第一天日期

Java代码

//jdk
Calendar current = Calendar.getInstance();
current.add(Calendar.DAY_OF_MONTH, 18);
current.add(Calendar.MONTH, 1);
......
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = current.getTime();
String dateStr = dateFormat.format(date);
System.out.println(dateStr);

//joda-time
String dateStr = new DateTime().plusDays(18).plusMonths(1)
.dayOfWeek().withMinimumValue().toString("yyyy-MM-dd HH:mm:ss");
System.out.println(dateStr);


4、时间格式化

Java代码

DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss");

//时间解析
DateTime dateTime = DateTime.parse("2012-12-21 23:22:45", format);

//时间格式化,输出==> 2012/12/21 23:22:45 Fri
String string_u = dateTime.toString("yyyy/MM/dd HH:mm:ss EE");
System.out.println(string_u);

//格式化带Locale,输出==> 2012年12月21日 23:22:45 星期五
String string_c = dateTime.toString("yyyy年MM月dd日 HH:mm:ss EE",Locale.CHINESE);
System.out.println(string_c);


5、与JDK互操作

Java代码

//通过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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Joda-Time