SimpleDateFormatを使用して、タイムゾーンを別の国のタイムゾーンに設定しようとしています。SimpleDateFormat.format()は指定されたタイムゾーンの正しい現在時刻を返しますが、SimpleDateFormat.parse()はローカルの現在時刻を返します。なぜこれが発生しているのかわかりません。これが私のコードです-
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
dateFormat.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
System.out.println("Time1 : " + dateFormat.format(new Date()));
System.out.println("Time2 : " + dateFormat.parse(dateFormat.format(new Date())));
出力は-
Time1 : 2013-01-17 21:01:55
Time2 : Fri Jan 18 10:30:55 IST 2013
Time1は「America/Los_Angeles」の出力であり、Time2はlocal(つまり「Asia / Calcutta」)の出力です。
与えられたタイムゾーンの現在の時刻をUTC秒形式(つまり、1970年1月1日からの秒)で表示したいだけです。
SimpleDateFormat.format()とSimpleDateFormat.parse()が、1つのタイムゾーンのみを設定しているのに異なる時間を与えるのはなぜですか?
私を助けてください。