Java的时间类库joda教程

使用原生Java操作时间是比较麻烦的,比如说简单的创建一个指定时间

String time = "2018-7-3 11:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
    date = sdf.parse(time);
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println(date);

以上代码会输出

Wed Jan 03 11:00:00 CST 2018

再来看看Java官方推荐的Calendar类,实现相同的功能

Calendar calendar = Calendar.getInstance();
calendar.set(2018, 6, 3, 11, 0, 0);
Date time = calendar.getTime();
System.out.println(time);

也很麻烦,要是使用Joda呢

DateTime dateTime = new DateTime(2018, 7, 3, 11, 0, 0);
System.out.println(dateTime.toDate());

只需一行代码,本就该一行代码,这本就是个很简单的功能。

joda创建时间对象时需要指定时区,如果不指定,默认会把时区设置为运行代码的机器所在的时区。

joda是线程安全的,和String一样,采用了一种简单粗暴的方式来实现线程安全。

求指定时间三天后的时间
DateTime dateTime1 = dateTime.plusDays(3);
System.out.println(dateTime1.toDate());

求指定时间三月之后的时间

DateTime dateTime2 = dateTime.plusMonths(3);
System.out.println(dateTime2.toDate());

将joda日期对象转成jdk日期Date对象:

Date date1 = new Date(dateTime2.getMillis());
System.out.println(date1);

将jdk日期对象专成jdk Calendar日期对象:

Calendar calendar1 = dateTime.toCalendar(Locale.getDefault());
System.out.println(calendar1);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值