"DateUtils工具类提供了日期和时间的转换方法,支持多种日期格式的转换,包括数据库存储格式、带有短横线的显示格式、带有点号的显示格式、中文显示格式以及长日期格式。主要涉及到Java的日期时间处理,如`java.util.Date`、`java.util.Calendar`、`java.text.SimpleDateFormat`等类。" 本文将详细讲解在Java中处理日期和时间的相关知识点,以`DateUtils`类为例,介绍日期格式化、日期计算、日期判断等功能。 1. **日期和时间基础类** - `java.util.Date`: 表示特定瞬间,精确到毫秒。 - `java.util.Calendar`: 一个抽象类,提供了日期和时间的通用操作。它是比`Date`更强大的API,支持日历字段的设置和获取。 2. **日期格式化** - `java.text.SimpleDateFormat`: 是一个具体的类,用于日期和时间的格式化和解析。通过自定义模式字符串(如"yyyy-MM-dd HH:mm:ss")来定义日期和时间的格式。 - `DateUtils`中的常量如`DB_STORE_DATE`、`HYPHEN_DISPLAY_DATE`等定义了不同的日期格式,方便在不同场景下使用。 3. **日期格式转换** - `getCurrTimeStr(int formatType)`方法:获取当前时间的字符串表示,根据`formatType`参数选择不同的日期格式。 - `getTimeStr(Date date, int formatType)`方法:将给定的`Date`对象转换成指定格式的字符串,这涉及到了`SimpleDateFormat`的`format()`方法。 4. **日期计算** - `Calendar`类可以进行日期的加减操作,例如增加或减少天数、小时数等,通过`add()`方法实现。 - `DateUtils`类虽然没有直接提供加减操作,但可以通过扩展此类,添加类似功能,比如获取某日期后的一天、一周等。 5. **日期判断** - 判断日期是否是当天:可以创建一个`Calendar`对象,设置为当前系统日期,然后与目标日期进行比较。 - `java.time`包中的`LocalDate`类提供了更多的日期比较方法,如`isBefore()`, `isAfter()`和`isEqual()`。 6. **国际化** - `SimpleDateFormat`类也可以处理国际化的日期格式,通过设置`Locale`对象,可以适应不同地区的日期和时间格式。 7. **日期和时间API的改进** - 自Java 8开始,引入了`java.time`包,包含`LocalDate`, `LocalTime`, `LocalDateTime`等新类,提供了更直观和安全的日期时间操作,推荐在新的项目中优先考虑使用。 在实际开发中,理解并熟练运用这些日期时间处理方法,能够有效地进行日期相关的计算、格式化和比较,提升代码的可读性和维护性。对于`DateUtils`类,开发者可以根据需求进一步扩展其功能,以满足更多复杂场景的需求。
import java.util.Locale;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateUtils {
/**数据库存储的时间格式串,如yyyymmdd 或yyyymmddHHMiSS*/
public static final int DB_STORE_DATE = 1;
/**用连字符-分隔的时间时间格式串,如yyyy-mm-dd 或yyyy-mm-dd HH:Mi:SS*/
public static final int HYPHEN_DISPLAY_DATE = 2;
/**用连字符.分隔的时间时间格式串,如yyyy.mm.dd 或yyyy.mm.dd HH:Mi:SS*/
public static final int DOT_DISPLAY_DATE = 3;
/**用中文字符分隔的时间格式串,如yyyy年mm月dd 或yyyy年mm月dd HH:Mi:SS*/
public static final int CN_DISPLAY_DATE = 4;
/*****数据库存储时间格式串,如yyyymmddHHMissSS**/
public static final int DB_LONG_DATE = 5;
selectSex(2)
/**
* 得到精确到秒的格式化当前时间串
* @param formatType 时间格式的类型{@link #DB_STORE_DATE},{@link #EN_HTML_DISPLAY_DATE},{@link #CN_HTML_DISPLAY_DATE}
* @return 当前时间格式化时间串
*/
public static String getCurrTimeStr(int formatType) {
}
/**
* 得到精确到秒的格式化时间串
* @param date 指定时间
* @param formatType 时间格式的类型{@link #DB_STORE_DATE},{@link #EN_HTML_DISPLAY_DATE},{@link #CN_HTML_DISPLAY_DATE}
* @return 指定时间的格式化时间串
*/
public static String getTimeStr(Date date, int formatType) {
if (formatType < DB_STORE_DATE || formatType > DB_LONG_DATE) {
throw new IllegalArgumentException("时间格式化类型不是正当的值。");
} else {
String formatStr = null;
switch (formatType) {
case DB_STORE_DATE:
formatStr = "yyyyMMddHHmmss";
break;
case HYPHEN_DISPLAY_DATE:
formatStr = "yyyy'-'MM'-'dd HH:mm:ss";
break;
case DOT_DISPLAY_DATE:
formatStr = "yyyy.MM.dd HH:mm:ss";
break;
case CN_DISPLAY_DATE:
formatStr = "yyyy'年'MM'月'dd'日' HH:mm:ss";
break;
case DB_LONG_DATE:
formatStr = "yyyyMMddHHmmssSS";
}
剩余28页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦