日期值格式错误

vik*_*g21 2 java parsing simpledateformat

我试图在解析我的代码中的平面文件后将平面文件中DateTime存在的String 值转换为Date对象.

我已经编写了代码来做到这一点,但是当我格式化日期时,它总是给我一个超过1天的指定值的日期,有时它会添加5:30.

以下是代码:

    DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zz yyyy");
    Date date = f.parse("Tue Aug 23 20:00:03 PDT 2011");
    System.out.println("---date----" + date);
Run Code Online (Sandbox Code Playgroud)

上面的输出是

    ---date----Wed Aug 24 08:30:03 IST 2011  
Run Code Online (Sandbox Code Playgroud)

你能告诉我这里的问题吗?我在SimplaDateFormat课堂上使用的模式是否存在问题,或者代码是否存在问题.我已经在这个问题很长时间了.

Jon*_*eet 6

你能告诉我这里的问题吗?

当然.你打电话有效date.toString(),不知道任何有关SimpleDateFormat其用于分析原始文本值.一个Date刚刚的时间瞬间.它没有每实例格式的概念.此外,它不知道时区.你已经在PDT中给出了一个值,然后解析了......当你打印它时,它使用的是系统本地时区(IST).这就是Date.toString 总是做.

如果要以Date特定方式格式化a ,使用特定时区中的特定格式,请调用DateFormat.format.