Java日期操作工具类
在Java中进行日期操作比较麻烦,需要经常进行格式化、计算等操作。使用Java日期操作工具类可以简化这些操作,提高代码可读性和可维护性。本文将介绍如何使用Java日期操作工具类完成获取指定日期、日期转换和相隔天数等常用操作。
获取指定日期
在Java日期操作中,通常需要获取当前日期、指定日期、某个日期的前一天或后一天等。下面是Java日期操作工具类中获取指定日期的代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 获取指定日期
*
* @param year 年份
* @param month 月份
* @param day 日
* @return 指定日期
*/
public static Date getDate(int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, day);
return calendar.getTime();
}
/**
* 获取当前日期
*
* @return 当前日期
*/
public static Date getCurrentDate() {
return new Date();
}
}
如上代码所示,通过Calendar.getInstance()方法获取Java Calendar对象,然后调用set()方法设置年月日,最后通过getTime()方法获取指定日期。
以下是使用示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample {
public static void main(String[] args) {
Date date = DateUtil.getDate(2022, 2, 22);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
System.out.println(sdf.format(date));
Date currentDate = DateUtil.getCurrentDate();
System.out.println(sdf.format(currentDate));
}
}
上述代码输出结果为:2022/02/22 和 当前日期。
日期转换
在Java日期操作中,通常需要将日期转换为字符串、字符串转换为日期等。下面是Java日期操作工具类中日期转换的代码:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
/**
* 字符串转日期
*
* @param dateStr 日期字符串
* @param pattern 格式化字符串
* @return 日期
* @throws ParseException 解析异常
*/
public static Date parse(String dateStr, String pattern) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.parse(dateStr);
}
/**
* 日期转字符串
*
* @param date 日期
* @param pattern 格式化字符串
* @return 日期字符串
*/
public static String format(Date date, String pattern) {
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
}
如上代码所示,通过DateFormat类与SimpleDateFormat类实现日期转换功能。其中parse()方法将字符串转换为日期,format()方法将日期转换为字符串。
以下是使用示例:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample {
public static void main(String[] args) throws ParseException {
Date date = DateUtil.parse("2022/02/22", "yyyy/MM/dd");
System.out.println(date);
String dateStr = DateUtil.format(date, "yyyy-MM-dd");
System.out.println(dateStr);
}
}
输出结果为:Tue Feb 22 00:00:00 CST 2022 和 2022-02-22。
相隔天数
在Java日期操作中,经常需要计算两个日期相隔的天数。下面是Java日期操作工具类中计算相隔天数的代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 相隔天数
*
* @param start 开始日期
* @param end 结束日期
* @return 相隔天数
*/
public static int daysBetween(Date start, Date end) {
Calendar cal = Calendar.getInstance();
cal.setTime(start);
long startTime = cal.getTimeInMillis();
cal.setTime(end);
long endTime = cal.getTimeInMillis();
long diff = endTime - startTime;
return (int) (diff / (1000 * 60 * 60 * 24));
}
}
如上代码所示,通过Calendar获取日期对象,然后通过getTimeInMillis()方法将日期转换为毫秒数,计算出两个日期相隔的毫秒数,最后转换为天数。
以下是使用示例:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample {
public static void main(String[] args) {
Date start = DateUtil.getDate(2022, 2, 22);
Date end = DateUtil.getCurrentDate();
int days = DateUtil.daysBetween(start, end);
System.out.println(days);
}
}
输出结果为:63。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java日期操作工具类(获取指定日期、日期转换、相隔天数) - Python技术站