DateFormat与日期处理
- 游戏开发
- 2025-08-29 00:57:01

文章目录 常见日期格式模式使用 SimpleDateFormat 格式化日期Action 类中的日期格式化 解析字符串为日期示例:字符串转日期获取当前日期和时间日期比较* 字符串与日期的相互转换其他方法 总结
常见日期格式模式
java.util.Date 是 Java 中用于表示特定时间点的类,默认以毫秒为单位记录从 1970 年 1 月 1 日 00:00:00 GMT 开始的时间。
模式字符描述示例y年份yyyy 表示 4 位年份M月份(从 1 开始)MM 表示两位月份d日期dd 表示两位日期H小时(24 小时制)HH 表示两位小时h小时(12 小时制)hh 表示两位小时m分钟mm 表示两位分钟s秒ss 表示两位秒数S毫秒SSS 表示三位毫秒E星期几EEE 表示星期a上午/下午标志AM 或 PM使用 SimpleDateFormat 格式化日期
SimpleDateFormat 是 Java 中用于解析和格式化日期的类。它允许开发者定义自定义的日期格式,可以将 Date 对象转换为字符串或反之。
import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatExample { public static void main(String[] args) { // 当前时间 Date currentDate = new Date(); // 定义日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 格式化日期为字符串 String formattedDate = sdf.format(currentDate); // 输出结果 System.out.println("格式化后的日期: " + formattedDate); } }输出结果:
格式化后的日期: 2025-02-19 16:45:30 Action 类中的日期格式化 public class DateFormatExample { public static void main(String[] args) { // 1. 创建 Date 对象(假设从数据库获取) Date date = new Date(); // 2. 定义 DateFormat(指定格式) DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 3. 格式化日期为字符串 String formattedDate = dateFormat.format(date); System.out.println("格式化日期: " + formattedDate); // 输出如:2023-10-01 // 4. 解析字符串为 Date(反向操作) try { Date parsedDate = dateFormat.parse("2023-12-31"); System.out.println("解析日期: " + parsedDate); // 输出:Sat Dec 31 00:00:00 CST 2023 } catch (Exception e) { e.printStackTrace(); } } } 解析字符串为日期除了格式化日期为字符串,SimpleDateFormat 还可以将字符串解析为 Date 对象。
示例:字符串转日期 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class ParseDateExample { public static void main(String[] args) { // 定义日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { // 字符串转日期 String dateStr = "2025-02-19"; Date parsedDate = sdf.parse(dateStr); // 输出结果 System.out.println("解析后的日期: " + parsedDate); } catch (ParseException e) { e.printStackTrace(); } } }输出结果:
解析后的日期: Wed Feb 19 00:00:00 CST 2025获取当前日期和时间 构造方法: new Date() 创建一个表示当前日期和时间的 Date 对象。
示例:
Date currentDate = new Date(); System.out.println(currentDate); // 输出当前日期和时间 日期比较after(Date when) 判断当前日期是否在指定日期之后,返回布尔值。
before(Date when) 判断当前日期是否在指定日期之前,返回布尔值。
compareTo(Date anotherDate) 比较两个日期对象,返回整数值:
如果当前日期晚于指定日期,返回正数。如果当前日期早于指定日期,返回负数。如果两个日期相等,返回 0。示例:
Date date1 = new Date(); Date date2 = new Date(date1.getTime() + 60000); // 当前时间加 1 分钟 System.out.println(date1.after(date2)); // false System.out.println(date1.before(date2)); // true System.out.println(date1 pareTo(date2)); // 负数* 字符串与日期的相互转换
通过 SimpleDateFormat 类实现字符串与日期的相互转换。
创建 SimpleDateFormat 对象: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 日期转字符串(format 方法): Date date = new Date(); String formattedDate = sdf.format(date); System.out.println(formattedDate); // 输出格式化后的字符串 字符串转日期(parse 方法): String dateString = "2025-02-19 16:45:30"; try { Date parsedDate = sdf.parse(dateString); System.out.println(parsedDate); // 输出解析后的日期 } catch (Exception e) { e.printStackTrace(); }其他方法
equals(Object obj) 判断两个日期对象是否相等。
clone() 创建并返回当前日期对象的副本。
getTimezoneOffset()(已过时) 返回当前日期与 UTC 时间之间的时间差(以分钟为单位)。
getDay()、getMonth()、getYear()(已过时) 获取星期几、月份和年份。这些方法已被弃用,建议使用 Calendar 类替代。
示例:
Date date = new Date(); System.out.println(date.getDay()); // 星期几(0 表示周日) System.out.println(date.getMonth()); // 月份(0 表示一月) System.out.println(date.getYear()); // 年份(1900 年为基准)总结 dateFormat.format(testVO.getCreateDate());
CreateDate 是Date类型,只要字段是Date类型就要用dateFormat.format,不是Date类型即便是日期也不用dateFormat.format
否则会有下面报错:
java.lang.IllegalArgumentException: Can not find a java.io.InputStream with the name [exportExcelOut] in the invocation stack. Check the <param name="inputName"> tag specified for this action is correct, not excluded and accepted.DateFormat与日期处理由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“DateFormat与日期处理”