9
Javaを使用してカレンダーTimeZonesを処理する方法
アプリケーションから取得したタイムスタンプ値があります。ユーザーは、任意の特定のローカルTimeZoneにいることができます。 この日付は、指定された時間が常にGMTであると想定するWebServiceに使用されるため、ユーザーのパラメーターを(EST)から(GMT)に変換する必要があります。これがキッカーです。ユーザーはTZに気づいていません。彼はWSに送信したい作成日を入力するので、必要なものは次のとおりです。 ユーザーが入力: 5/1/2008 6:12 PM(EST) WSへのパラメーターは次のとおりである必要があります:5/1/2008 6:12 PM(GMT) TimeStampsはデフォルトで常にGMTであると想定していますが、パラメーターを送信するとき、TSからカレンダーを作成した場合(GMTであると想定されています)、ユーザーがGMTでない限り、時間は常にオフです。何が欠けていますか? Timestamp issuedDate = (Timestamp) getACPValue(inputs_, "issuedDate"); Calendar issueDate = convertTimestampToJavaCalendar(issuedDate); ... private static java.util.Calendar convertTimestampToJavaCalendar(Timestamp ts_) { java.util.Calendar cal = java.util.Calendar.getInstance( GMT_TIMEZONE, EN_US_LOCALE); cal.setTimeInMillis(ts_.getTime()); return cal; } 以前のコードでは、これは結果として得られるものです(読みやすいように短い形式): [2008年5月1日午後11:12]