如何从字符串中解析日期并保持其格式?

时间:2013-01-08 12:04:40

标签: java

我有这段代码将字符串转换为日期。但结果日期总是另一种格式。

SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
        try {
            String dateString  = "18/01/2013 11:59";
            dateTest = format.parse(dateString);
            System.out.println(dateTest); //output: Tue Jan 18 11:59:00 GMT 2013
           }

我如何才能使dateTest格式与原始格式相同?

5 个答案:

答案 0 :(得分:3)

使用您用于解析它的相同SimpleDateFormat格式化日期。

答案 1 :(得分:2)

这个

System.out.println(format.format(dateTest));

将完成这项工作。您可以使用format()的{​​{1}}方法以与输入相同的方式格式化输出。

答案 2 :(得分:1)

你不能,因为Date没有'格式'。

如果你需要这个,你可以创建自己的Date类,其中包含一个内置的格式,但它会很蹩脚。

正常的方法是在打印时格式化日期。

 System.out.println(format.format(dateTest));

答案 3 :(得分:1)

java.util.Date和java.sql.Date都存储秒和年,这就是您在打印dateTest时看到它们的原因。如果您想以您提供的格式(dd / MM / yyyy HH:mm)打印日期,您只需要格式化日期。

Date dateTest;      
SimpleDateFormat desiredDateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm");

try
{
    String dateString  = "18/01/2013 11:59";
    dateTest = desiredDateFormat.parse(dateString);

    System.out.println(desiredDateFormat.format(dateTest)); //output: 18/01/2013 11:59
}
catch (Exception ex)
{
    //do something
}

答案 4 :(得分:0)

输出时,请使用:

System.out.println(format.format(dateTest));