1

请在下面找到我的代码,它的作用是将任何 timeZone 的 TimeStamp 值转换为所需的 TimeZone 并为您提供 requiredTimeZone 的日期。它可以正常工作,日期变量正确出现,但我需要 (Date) Datatype 中的值,因此我使用相同的 SimpleDataFormat 对象将其解析回来,但它以不同的格式返回我的值,而不是 SimpleDataFormat Object 中提到的值。

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.

我可以看到日期是根据 timeZone 转换的,但是为什么 parse 没有以所需的格式返回它,即“dd-MM-yy”。

4

1 回答 1

5

parse方法返回一个日期。

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

要以您想要的格式打印它,您可以使用该format方法将其转换为字符串然后打印它。

于 2013-11-01T20:27:48.380 回答