4

我正在尝试将毫秒 (20180510-10:50:58.106) 的字符串转换为 java 中的日期。但是,当我转换它时,我得到毫秒部分,但又在字符串中。我想要日期格式的相同部分。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class SimpleDateFormatExample {
public static void main(String[] args) {

    String curDate = "20180510-10:50:58.106";
    Date SysDateVar = null ;


    //SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS");

    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS");
    //String Todate = format.format(curDate);
    //System.out.println("format.parse(curDate)="+Todate);
    String abc = null;

    try
    {

        abc = format.format(format.parse(curDate));

         System.out.println("SysDateVar ="+abc);

    SysDateVar = new Date ((long) (format.parse(curDate)).getTime());
    System.out.println("format.parse(curDate)="+ SysDateVar);
    }
    catch (ParseException e) {

        e.printStackTrace();
    }
}
}

输出是:

$javac SimpleDateFormatExample.java
$java -Xmx128M -Xms16M SimpleDateFormatExample

SysDateVar =20180510-10:50:58.106

format.parse(curDate)=Thu May 10 10:50:58 UTC 2018

变量 abc 是一个字符串。我希望在 Date 变量中具有相同的输出。

4

1 回答 1

2

当你调用System.out.println一个Date对象时,toString()this 的方法Date将被隐式调用,它会以默认格式返回,如Thu May 10 10:50:58 UTC 2018.

您需要明确调用format.format(date)以获得所需的输出。

于 2018-05-11T07:24:21.753 回答