邯郸网站建设市场,网站管理公司排名,广告设计这个行业怎么样,西安中企动力科技股份有限公司在Java中#xff0c;日期格式化主要涉及将 Date、LocalDate、LocalDateTime 等日期时间对象转换为指定格式的字符串#xff0c;或将字符串解析为日期对象。以下是两种常用的日期格式化方式#xff1a; 一、使用 SimpleDateFormat#xff08;旧版API#xff0c;Java 8之前日期格式化主要涉及将 Date、LocalDate、LocalDateTime 等日期时间对象转换为指定格式的字符串或将字符串解析为日期对象。以下是两种常用的日期格式化方式 一、使用 SimpleDateFormat旧版APIJava 8之前
SimpleDateFormat 是Java早期版本中用于格式化和解析日期的类但它是非线程安全的需谨慎使用。
1. 格式化为字符串
java
复制
下载
import java.text.SimpleDateFormat;
import java.util.Date;public class Main {public static void main(String[] args) {Date date new Date();SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String formattedDate sdf.format(date);System.out.println(formattedDate); // 例如2023-10-05 15:30:45}
}
2. 字符串解析为日期
java
复制
下载
String dateStr 2023-10-05;
SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);
Date date sdf.parse(dateStr); // 需处理 ParseException
常用模式符号 yyyy四位年份如2023 MM两位月份01-12 dd两位日期01-31 HH24小时制小时00-23 hh12小时制小时01-12 mm分钟00-59 ss秒00-59 SSS毫秒000-999 E星期几如Mon、Tue 二、使用 DateTimeFormatter新版APIJava 8
Java 8引入了 java.time 包提供了线程安全的 LocalDate、LocalDateTime 和 DateTimeFormatter。
1. 格式化为字符串
java
复制
下载
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class Main {public static void main(String[] args) {LocalDateTime now LocalDateTime.now();DateTimeFormatter formatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);String formattedDate now.format(formatter);System.out.println(formattedDate); // 例如2023-10-05 15:30:45}
}
2. 字符串解析为日期
java
复制
下载
String dateStr 2023-10-05 15:30;
DateTimeFormatter formatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm);
LocalDateTime dateTime LocalDateTime.parse(dateStr, formatter); // 需处理 DateTimeParseException
3. 预定义的格式
java
复制
下载
// 使用内置标准格式如ISO日期时间格式
String isoFormat LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
// 输出2023-10-05T15:30:45.123
常用模式符号与旧版类似但更严格 uuuu四位年份替代yyyy推荐使用 MM/dd/HH/mm/ss同上 a上午/下午标记如AM/PM 三、时区处理
若需处理时区可使用 ZonedDateTime
java
复制
下载
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;ZonedDateTime zonedDateTime ZonedDateTime.now();
DateTimeFormatter formatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss z);
String formatted zonedDateTime.format(formatter); // 例如2023-10-05 15:30:45 CST 四、注意事项 线程安全 SimpleDateFormat 非线程安全多线程环境下需同步或使用ThreadLocal。 DateTimeFormatter 是线程安全的可全局共享。 错误处理 解析字符串时需捕获 ParseException旧版或 DateTimeParseException新版。 性能 新版APIjava.time性能更优推荐使用。 完整示例Java 8
java
复制
下载
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateTimeExample {public static void main(String[] args) {// 格式化LocalDateTime now LocalDateTime.now();DateTimeFormatter formatter DateTimeFormatter.ofPattern(yyyy年MM月dd日 HH:mm);String formatted now.format(formatter);System.out.println(当前时间 formatted); // 例如2023年10月05日 15:30// 解析String dateStr 2023年12月31日 23:59;LocalDateTime parsedDate LocalDateTime.parse(dateStr, formatter);System.out.println(解析后的时间 parsedDate);}
}
建议优先使用 java.time 包Java 8其设计更现代且线程安全。旧版 SimpleDateFormat 仅适用于兼容遗留代码。