在java中将字符串转换为日期时的意外输出

Sur*_*dra 2 java string format date

我有一个字符串"12/9/2010 4:39:38 PM",我必须转换为日期对象.我使用以下代码来执行此操作:

String str = "12/9/2010 4:39:38 PM";

DateFormat formatter ;

Date date ;

formatter = new SimpleDateFormat("M/dd/yyyy H:m:s a");

date =(Date)formatter.parse(str);             

System.out.println("date printed"+date);      
Run Code Online (Sandbox Code Playgroud)

但是,当我打印输出时,我明白了

Thu Dec 09 04:39:38 IST 2010

如何按照我在字符串中声明的方式获取日期,即

12/9/2010 4:39:38 PM

作为输出?请帮忙

Jon*_*eet 5

您假设Date值本身会记住格式 - 它不会.Date.toString会做它想做的事 - 因为它Date只代表一个瞬间.

如果要格式化 a Date,请再次使用格式化程序:

System.out.println(formatter.format(date));
Run Code Online (Sandbox Code Playgroud)

但是,这不一定会返回与字符串中完全相同的值,因为可能存在多个以相同方式解析的值.例如,因为你只使用了"H:m:s",我希望"4:5:6"的解析方式与"04:05:06"相同.