您的位置 首页 java

java之道|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);

文章来源:智云一二三科技

文章标题:java之道|joda-time时间与日期处理

文章地址:https://www.zhihuclub.com/186032.shtml

关于作者: 智云科技

热门文章

网站地图