gpt4 book ai didi

java - 不使用 Joda Time 的 Java 时间转换

转载 作者:行者123 更新时间:2023-12-01 12:33:14 24 4
gpt4 key购买 nike

我的基本查询是将特定地点的时间转换为另一个地点的相应时间。例如:印度 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实用程序。提前致谢。

最佳答案

你问:

What is the time in Los-angeles when it is 23:30 in India ? What is the time in Los-angeles when it is 10:00 in Germany ?

不可能按照所述回答这些问题。印度全年使用 UTC+05:30,洛杉矶在 UTC-08:00 和 UTC-07:00 之间波动,德国在 UTC+01:00 和 UTC+02:00 之间波动。这些变化发生在 daylight saving time .

此外,如果您回顾历史,您会发现这些时区还有许多其他变化。因此,即使我刚才所说的偏移量也不一定是正确的。

执行此类调整的方法只有两种:

  • 仅适用于从未改变其偏移量的时区,并且如果您查看所有记录的历史记录,这些时区非常很少。

  • 在特定日期应用调整。例如,您可以将“今天”洛杉矶 23:30 转换为您喜欢的任何时区。

关于java - 不使用 Joda Time 的 Java 时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25780270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com