我的基本查询是将特定地点的时间转换为另一个地点的相应时间。例如:在印度是 23:30 时,洛杉矶是几点钟?10:00 在德国时,洛杉矶是几点钟?
给出的输入是目标和相对地点时区以及要转换的时间。
例如:输入 ["America/Los_angeles" , "Germany" , "23:00"]
我尝试了各种方法,例如:
1)获取两个时区的当前时间并找到差异并将差异添加到 time 。
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 实用程序。提前致谢 。