SimpleDateFormat Parse未以所需格式返回Date

Sur*_*raj 1 java simpledateformat

请找到我的下面的代码什么是任何timeZone的TimeStamp值将它转换为所需的TimeZone并为您提供requiredTime Zone的日期.它正常工作日期变量,但我需要(日期)数据类型中的值,所以我使用相同的SimpleDataFormat对象解析它,但它返回一个不同格式的值,而不是SimpleDataFormat对象中提到的值.

private Date getDateOfTimeZone(Timestamp timeStamp, String timeZoneCode)
        throws ParseException {
    SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yy");
    DATE_FORMAT.setTimeZone(TimeZone.getTimeZone(timeZoneCode));
    String date = DATE_FORMAT.format(timeStamp);
    return DATE_FORMAT.parse(date);
}

Input Varibles : TimeStamp : 2013-11-01 16:19:37.0 , TimeZone : "IST"
Date value is coming as  : 02-11-13 (Correct)
But Parse() is returning me  : Fri Nov 01 14:30:00 EDT 2013.
Run Code Online (Sandbox Code Playgroud)

我可以看到日期是根据timeZone转换的,但是为什么解析不会以所需的格式返回它,即"dd-MM-yy".

Kal*_*Kal 5

parse方法返回Date.

当你打印时Date,你会得到toString()你所看到的方法的输出(Fri Nov 01 14:30:00 EDT 2013)

要以您希望的格式打印它,您可以使用该format方法将其转换为String然后打印它.

  • @Suraj Date是自Unix纪元以来毫秒数的容器,它本身没有格式,在需要时默认为本地格式.您可以使用`DateFormatter`来生成`Date`的不同格式`String`s,但它们不是`Date` (2认同)