我的基本查询是将某个特定地点的时间转换为另一个地方的相应时间。 例如: 洛杉矶现在在印度的时间是什么时候? 洛杉矶现在在德国10:00是几点钟?Java中不使用乔达时间的时间转换
给出的输入是目标和相对位置时区以及要转换的时间。
例如:输入[ “美国/洛杉矶”, “德国”, “23:00”]
我尝试了各种approches的如下列:
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实用程序。提前致谢 。
在我的测试中,2014年的情况看起来不错。 – Jens 2014-09-11 06:21:17
那么,你期望输出是什么,你会得到什么输出呢?你为什么不使用你的SimpleDateFormat? – 2014-09-11 06:26:08
@Jens:对不起,我得到的输出是“2014-09-11 10:00 AM ”这是错误的。 – 2014-09-11 06:42:35