【知识分享】Java日期工具类

以下是一个示例的Java日期工具类,其中包含了常见的日期操作和格式化方法:

import java.text.DateFormat;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class DateUtils {

private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

/**

* 获取当前日期时间

*

* @return 当前日期时间

*/

public static Date getCurrentDateTime() {

return new Date();

}

/**

* 格式化日期时间为字符串

*

* @param date 日期时间对象

* @param pattern 日期时间格式

* @return 格式化后的日期时间字符串

*/

public static String formatDateTime(Date date, String pattern) {

DateFormat dateFormat = new SimpleDateFormat(pattern);

return dateFormat.format(date);

}

/**

* 格式化日期时间为默认格式字符串(yyyy-MM-dd HH:mm:ss)

*

* @param date 日期时间对象

* @return 格式化后的日期时间字符串

*/

public static String formatDateTime(Date date) {

return formatDateTime(date, DEFAULT_PATTERN);

}

/**

* 将字符串解析为日期时间对象

*

* @param dateTimeStr 日期时间字符串

* @param pattern 日期时间格式

* @return 解析后的日期时间对象

* @throws ParseException 解析异常

*/

public static Date parseDateTime(String dateTimeStr, String pattern) throws ParseException {

DateFormat dateFormat = new SimpleDateFormat(pattern);

return dateFormat.parse(dateTimeStr);

}

/**

* 将字符串解析为日期时间对象(使用默认格式:yyyy-MM-dd HH:mm:ss)

*

* @param dateTimeStr 日期时间字符串

* @return 解析后的日期时间对象

* @throws ParseException 解析异常

*/

public static Date parseDateTime(String dateTimeStr) throws ParseException {

return parseDateTime(dateTimeStr, DEFAULT_PATTERN);

}

/**

* 获取指定日期的年份

*

* @param date 日期时间对象

* @return 年份

*/

public static int getYear(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.YEAR);

}

/**

* 获取指定日期的月份

*

* @param date 日期时间对象

* @return 月份(1-12)

*/

public static int getMonth(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.MONTH) + 1;

}

/**

* 获取指定日期的天数

*

* @param date 日期时间对象

* @return 天数

*/

public static int getDay(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.DAY_OF_MONTH);

}

/**

* 获取指定日期的小时

*

* @param date 日期时间对象

* @return 小时

*/

public static int getHour(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.HOUR_OF_DAY);

}

/**

* 获取指定日期的分钟

*

* @param date 日期时间对象

* @return 分钟

*/

public static int getMinute(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.MINUTE);

}

/**

* 获取指定日期的秒数

*

* @param date 日期时间对象

* @return 秒数

*/

public static int getSecond(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar.get(Calendar.SECOND);

}

}

这个示例的日期工具类提供了获取当前日期时间、格式化日期时间、解析日期时间、获取年份、月份、天数、小时、分钟和秒数等常用操作。您可以根据实际需求对其进行扩展和修改。

使用示例:

public class Main {

public static void main(String[] args) {

Date currentDateTime = DateUtils.getCurrentDateTime();

System.out.println("当前日期时间:" + DateUtils.formatDateTime(currentDateTime));

String dateTimeStr = "2023-12-01 15:30:00";

try {

Date parsedDateTime = DateUtils.parseDateTime(dateTimeStr);

System.out.println("解析后的日期时间:" + DateUtils.formatDateTime(parsedDateTime));

} catch (ParseException e) {

e.printStackTrace();

}

int year = DateUtils.getYear(currentDateTime);

int month = DateUtils.getMonth(currentDateTime);

int day = DateUtils.getDay(currentDateTime);

int hour = DateUtils.getHour(currentDateTime);

int minute = DateUtils.getMinute(currentDateTime);

int second = DateUtils.getSecond(currentDateTime);

System.out.println("当前日期时间:"

  • year + "年" + month + "月" + day + "日 "

  • hour + "时" + minute + "分" + second + "秒");

}

}

这个示例中,我们首先获取当前日期时间,并将其格式化为字符串进行输出。然后,使用解析方法将字符串解析为日期时间对象,并再次格式化输出。最后,使用获取方法获取当前日期时间的各个部分(年、月、日、小时、分钟、秒),并进行输出。

相关推荐
正在走向自律3 分钟前
豆包编程模型Doubao-Seed-Code深度体验,从零开始构建全栈项目的完整指南
java·服务器·数据库·doubao·claude code·火山方舟
钱多多_qdd7 分钟前
基础篇:IoC(九):应用上下文ApplicationContext
java·spring
十五年专注C++开发9 分钟前
libdatrie: 一个高效的 基于双数组字典树(Double-Array Trie)的C语言函数库
c语言·开发语言·trie
q***558920 分钟前
SpringSecurity 实现token 认证
java
合作小小程序员小小店20 分钟前
web网页开发,在线%医院诊断管理%系统,基于Idea,html,css,jQuery,java,jsp,ssh,mysql。
java·前端·css·数据库·jdk·html·intellij-idea
程序猿_极客1 小时前
【2025最新】 Java入门到实战:包装类、字符串转换、equals/toString + 可变字符串,一篇搞定开发高频场景(含案例解析)
java·开发语言·java进阶·面试核心·java快速入门
U***e631 小时前
Python测试
开发语言·python
四谎真好看1 小时前
Java 黑马程序员学习笔记(进阶篇28)
java·笔记·学习·学习笔记
晨晖21 小时前
springboot的Thymeleaf语法
java·spring boot·后端
yi碗汤园1 小时前
Visual Studio常用的快捷键
开发语言·ide·c#·编辑器·visual studio