joda-time时间与日期处理

首先添加maven依赖

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10</version>
</dependency>

1、将字符串转换为时间
DateTimeFormatter forPattern = DateTimeFormat.forPattern(“yyyy-MM-dd”);
DateTime dateTime=forPattern.parseDateTime(“2018-01-01”);
format = DateTimeFormat.forPattern(“yyyy年MM月dd日 HH:mm:ss”);
dateTime=forPattern.parseDateTime(“2018年01月01日 23:25:35”);
2、将时间转换为字符串
DateTime dateTime=new DateTime();
String dateString = dateTime.toString(“yyyyMMdd”);
DateTimeFormatter forPattern = DateTimeFormat.forPattern(“yyyy年MM月dd日 HH:mm:ss”);
dateString=forPattern.print(dateTime);
3、得到任何日期所在周的第一天与最后一天
DateTime dateTime=new DateTime();
// 一周的开始日期
String monday= dateTime.dayOfWeek().withMinimumValue().toString(“yyyyMMdd”);
// 一周的结束日期
String sunday= dateTime.dayOfWeek().withMaximumValue().toString(“yyyyMMdd”);
4、得到任何日期所在月的第一天与最后一天
DateTime dateTime=new DateTime();
String first= dateTime.dayOfMonth().withMinimumValue().toString(“yyyyMMdd”);
String last= dateTime.dayOfMonth().withMaximumValue().toString(“yyyyMMdd”);

5、得到任何日期所在年的第一天与最后一天
DateTime dateTime=new DateTime();
String first= dateTime.dayOfYear().withMinimumValue().toString(“yyyyMMdd”);
String last= dateTime.dayOfYear().withMaximumValue().toString(“yyyyMMdd”);
6、加减年、月、周、天、时、分、秒、毫秒
DateTime dateTime=new DateTime();
//加一年
dateTime.plusYears(1);
//加一月
dateTime.plusMonths(1);
//加一周
dateTime.plusWeeks(1);
//加一天
dateTime.plusDays(1);
//加一小时
dateTime.plusHours(1);
dateTime.plusMinutes(1);
dateTime.plusSeconds(1);
dateTime.plusMillis(1);

//减去一年
dateTime.minusYears(1);
//减去加一月
dateTime.minusMonths(1);
……

7、得到上一周的星期一与星期天、下一周的星期一与星期天
DateTime dateTime=new DateTime();
DateTime previousMonday= dateTime.dayOfWeek().withMinimumValue().minusWeeks(1);
DateTime previousSunday= dateTime.dayOfWeek().withMaximumValue().minusWeeks(1);

DateTime nextMonday= dateTime.dayOfWeek().withMinimumValue().plusWeeks(1);
DateTime nextSunday= dateTime.dayOfWeek().withMaximumValue().plusWeeks(1);

8、得到上一个月的第一天与最后一天、下一个有的第一天与最后一天
DateTime dateTime=new DateTime();
String previousFirstDay= dateTime.dayOfYear().withMinimumValue().minusMonths(1).toString(“yyyyMMdd”);
String previousLastDay= dateTime.dayOfYear().withMaximumValue().minusMonths(1).toString(“yyyyMMdd”);

String nextFirstDay= dateTime.dayOfYear().withMinimumValue().plusMonths(1).toString(“yyyyMMdd”);
String nextLastDay= dateTime.dayOfYear().withMaximumValue().plusMonths(1).toString(“yyyyMMdd”);

9、计算两个日期相差多少天、相差多少月、相差多少年
DateTime nextFirstDay= dateTime.dayOfYear().withMinimumValue().plusMonths(1);
DateTime nextLastDay= dateTime.dayOfYear().withMaximumValue().plusMonths(1);
int days = Days.daysBetween(nextFirstDay, nextLastDay).getDays();
int months = Months.monthsBetween(nextFirstDay, nextLastDay).getMonths();
int years =Years.yearsBetween(nextFirstDay, nextLastDay).getYears();

10、计算某个月份的第一个星期二
DateTime now =new DateTime();
String date=now.monthOfYear()
.setCopy(10) // 10月
.dayOfMonth()
.withMinimumValue() // 10月第一天
.plusDays(6) // 加6天
.dayOfWeek()
.setCopy(2) //第一个星期二
.toString(“yyyy-MM-dd”);

11、判断闰年、闰月
DateTime now =new DateTime();
boolean leapYear = now.year().isLeap();
boolean leapMonth = now.monthOfYear().isLeap();

12、取得一天的开始时间和结束时间
DateTime now = new DateTime();
String formatter=“yyyy-MM-dd HH:mm:ss”;
String startTime = now.withTimeAtStartOfDay().toString(formatter);
String endTime = now.millisOfDay().withMaximumValue().toString(formatter);

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值