java 时间的原生操作和工具类操作

java

package com.xc.test.dateoperation;

import org.apache.commons.lang3.time.DateFormatUtils;

import org.apache.commons.lang3.time.DateUtils;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.Iterator;

public class DateMain {

public static void main(String[] args) throws ParseException {

Date now = new Date();

// System.out.println("now:" + now);// Fri Aug 16 14:51:39 CST 2019

//日期add

{

// 封装Calendar类add方法

{

Date date = add(now, Calendar.DAY_OF_MONTH, 1);//增加天数

// System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019

Date date2 = add(now, Calendar.MINUTE, 1);//增加分钟

// System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019

}

// 通过DateUtils工具类

{

Date date = DateUtils.addDays(now, 1);//增加天数

// System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019

Date date2 = DateUtils.addMinutes(now, 1);//增加分钟

// System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019

}

}

//判断2个日期是不是同一天

{

// 判断Calendar的年,年所在的天数是否相等

boolean sameDay = isSameDay(now, now);

// System.out.println(sameDay);//true

// 通过DateUtils工具类

boolean sameDay2 = DateUtils.isSameDay(now, now);

// System.out.println(sameDay2);//true

}

/*

获取一段日期

RANGE_WEEK_SUNDAY 从周日开始获取一周日期

RANGE_WEEK_MONDAY 从周一开始获取一周日期

RANGE_WEEK_RELATIVE 从当前时间开始获取一周日期

RANGE_WEEK_CENTER 以当前日期为中心获取一周日期

RANGE_MONTH_SUNDAY 从周日开始获取一个月日期

RANGE_MONTH_MONDAY 从周一开始获取一个月日期

*/

Iterator<Calendar> iterator = DateUtils.iterator(now, DateUtils.RANGE_MONTH_SUNDAY);

while (iterator.hasNext()) {

Calendar next = iterator.next();

// System.out.println("next:" + next);

String format = DateFormatUtils.format(next, "yyyy-MM-dd HH:mm:ss");

// System.out.println("format:" + format);

}

// 解析时间字符串

{

// 使用SimpleDateFormat类

{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = sdf.parse("2019-08-16 15:36:16");

// System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019

}

// 通过DateUtils工具类

{

Date date = DateUtils.parseDate("2019-08-16 15:36:16", "yyyy-MM-dd HH:mm:ss");

// System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019

}

}

// 设置日期时间

{

// 封装Calendar的set方法

{

Date date = set(now, Calendar.DAY_OF_MONTH, 1);

// System.out.println(date);//Thu Aug 01 16:04:08 CST 2019

String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");

// System.out.println("format:" + format);//2019-08-01 16:04:08

}

// 通过DateUtils工具类

{

Date date = DateUtils.setDays(now, 1);

// System.out.println(date);//Thu Aug 01 16:04:08 CST 2019

String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss");

// System.out.println("format:" + format);//2019-08-01 16:04:08

}

}

//计算两个时间隔多少天

{

int intervalDate = intervalDate(now, now);

// System.out.println("intervalDate:" + intervalDate);//0

}

}

// 计算两个时间隔多少天

public static int intervalDate(Date startDate, Date endDate) {

long startTime2 = startDate.getTime();

long endTime2 = endDate.getTime();

int amount = (int) ((endTime2 - startTime2) / (1000 * 3600 * 24));

return amount;

}

/**

* 设置日期时间

*

* @param date 待修改的日期

* @param calendarField 设置的单位

* @param amount 设置的数值

* @return Date 设置后的日期

*/

private static Date set(Date date, int calendarField, int amount) {

Calendar c = Calendar.getInstance();

c.setLenient(false);

c.setTime(date);

c.set(calendarField, amount);

return c.getTime();

}

/**

* 判断2个日期是不是同一天

*

* @param date1 待比较日期1

* @param date2 待比较日期2

* @return boolean

*/

public static boolean isSameDay(Date date1, Date date2) {

Calendar cal1 = Calendar.getInstance();

cal1.setTime(date1);

Calendar cal2 = Calendar.getInstance();

cal2.setTime(date2);

return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&

cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);

}

/**

* 日期add

*

* @param date 待增日期

* @param calendarField 增加单位

* @param amount 增加数量

* @return Date 增加后日期

*/

private static Date add(final Date date, int calendarField, int amount) {

Calendar c = Calendar.getInstance();

c.setTime(date);

c.add(calendarField, amount);

return c.getTime();

}

}

以上是 java 时间的原生操作和工具类操作 的全部内容, 来源链接: utcz.com/z/393229.html

回到顶部