私の基本的なクエリは、特定の場所の時間を別の場所の対応する時間に変換することです。例: インドで 23:30 のとき、ロサンゼルスでは何時ですか? ドイツで10:00のとき、ロサンゼルスでの時間は?
与えられた入力は、ターゲットと相対的な場所のタイムゾーン、および変換される時間でした。
例: 入力 ["America/Los_angeles" , "Germany" , "23:00"]
次のようなさまざまなアプローチを試しました。
1) 両方のタイムゾーンで現在の時刻を取得し、差を見つけて時刻に追加します。
2) 以下のコードを使用:
String target_timezone = "America/Los_Angeles";
String rel_timezone ="Germany";
Calendar rel_calender = new GregorianCalendar(TimeZone.getTimeZone(rel_timezone));
rel_calender.set(Calendar.HOUR, Integer.parseInt(arr[0]));
rel_calender.set(Calendar.MINUTE, Integer.parseInt(arr[1]));
rel_calender.set(Calendar.SECOND, 00);
Calendar TargetTime = new GregorianCalendar(TimeZone.getTimeZone(target_timezone));
TargetTime.setTimeInMillis(rel_calender.getTimeInMillis());
SimpleDateFormat f = new SimpleDateFormat("EEEE,yyyy-MM-dd hh:mm a Z");
System.out.println("time in " + target_timezone + "when it is 17:00 in " + rel_timezone + ": " );
System.out.println((TargetTime.get(Calendar.DST_OFFSET)));
System.out.print((TargetTime.get(Calendar.HOUR)));
System.out.print(":" +(TargetTime.get(Calendar.MINUTE)));
System.out.println(":" +(TargetTime.get(Calendar.SECOND)));
System.out.println((TargetTime.get(Calendar.YEAR)));
年が間違っています。
これを行うより良い方法はありますか?Calendar、SimpleDateFormat、および Date のさまざまな方法を無駄に試しました。基本的な Java ユーティリティのみを使用でき、Joda ユーティリティは使用できません。前もって感謝します 。