使用 simpledateformat 并设置格式模式为 yyyy-mm-dd hh:mm:ss.sss 即可格式化带毫秒的时间。调用 format() 方法传入 date 对象,或解析时调用 parse() 方法,系统会自动处理毫秒部分的填充与提取。

如何实例化并配置日期格式化器
通过构造函数创建 SimpleDateFormat 实例,传入包含 SSS 的模式字符串。该模式中的 S 代表秒的小数部分,三个 S 表示精确到毫秒。实例化后,直接使用该对象进行转换操作。

import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
String formatted = sdf.format(now);
System.out.println(formatted);
}
}如何将带毫秒的字符串解析回Date对象
使用同一个 SimpleDateFormat 实例调用 parse() 方法,传入符合 yyyy-MM-dd HH:mm:ss.SSS 格式的字符串。解析结果会保留毫秒信息在 Date 对象中,可通过 getTime() 验证精度。

import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String timeStr = "2023-10-01 12:30:45.123";
Date date = sdf.parse(timeStr);
System.out.println(date.getTime());
}
}当输入字符串缺少毫秒部分时会发生什么
如果输入字符串如 2023-10-01 12:30:45 缺少毫秒部分,而格式模式仍为 yyyy-MM-dd HH:mm:ss.SSS,parse() 方法将抛出 ParseException。因为格式要求必须存在三位毫秒数字,不匹配即报错。若需兼容有无毫秒两种情况,应使用 DateTimeFormatter 或自定义逻辑处理。

















