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