4

UTC 時間の文字列を、GMT-5 に設定する必要がある Java Calendar オブジェクトに変換しようとしています。

私の現在のUTC文字列入力はこれです:

UTC 日付: 20050329174411

私はこのコードを使用します(以下に示すように「パターン」を検出します):

DateFormat dateFormat = new SimpleDateFormat(pattern);
Date date = dateFormat.parse(utcDate);
calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT-5"));
calendar.setTime(date);

次に、次のように時間を印刷しました。

calendar.getTime()

そして、私はこの結果を得ました:

GMT 日付 : 2005 年 3 月 29 日火曜日 17:44:11 EST

これらの日付/時刻文字列パターンをサポートする必要があります:

FORMAT_UTC4 = "yyyy";           
FORMAT_UTC6 = "yyyyMM";         
FORMAT_UTC8 = "yyyyMMdd";       
FORMAT_UTC10 = "yyyyMMddHH";    
FORMAT_UTC12 = "yyyyMMddHHmm";  
FORMAT_UTC14 = "yyyyMMddHHmmss";

時刻が「12:44:11」に設定されることを期待しています。いくつかの例を読んだことがありますが、日時の処理はかなり混乱しています。私にとっては、常に同じです。ある種の文字列形式の UTC を取得し、それを GMT-5 に変換します。私はそれが簡単であるべきだと本当に感じています!

参照 1: Java で UTC または GMT で現在の日付と時刻を取得するにはどうすればよいですか?

参照 2: Java を使用してカレンダーの TimeZones を処理する方法は?

4

2 に答える 2

5

日付を解析する前に、SimpleDateFormatのタイムゾーンをUTCに設定する必要があります。それ以外の場合は、デフォルトのタイムゾーンを使用します。

また、「GMT-5」タイムゾーンで日付を表示するには、タイムゾーンをGMT-5に設定した別のDateFormatを使用し、このDateFormatで日付をフォーマットする必要があります。DateのtoString()メソッドは、デフォルトのタイムゾーンを使用して、日付を読み取り可能なものに変換します。

于 2012-12-17T22:17:14.423 に答える