使用简单的日期格式转换时Java日期不会保留毫秒数

Atm*_*tma 5 java date simpledateformat

我正在尝试将以下字符串"2012-04-13 04:08:42.794"转换为日期类型:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");

    Date convertedDate;
    try {
        convertedDate = dateFormat.parse(dateString);
        System.out.println(" in utils: "+convertedDate.toString());
    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }


  //----------------- i think this is the problem
java.sql.Date sqlDate = new java.sql.Date(convertedDate.getTime());
        System.out.println("sql: "+sqlDate.toString());
        return sqlDate;
Run Code Online (Sandbox Code Playgroud)

但这是打印以下内容:

in utils: Fri Apr 13 04:08:42 PDT 2012
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个日期以保持毫秒?

SJu*_*n76 8

convertedDate对象确实包含毫秒信息.这里的问题是toString()方法格式不打印毫秒.

 System.out.println(" in utils: " + dateFormat.format(convertedDate));
Run Code Online (Sandbox Code Playgroud)

您还可以检查是否设置了ms

 System.out.println("millis: " + convertedDate.getTime());
Run Code Online (Sandbox Code Playgroud)