Java程序:在其他时区显示当前时间
时区是指为了法律、商业和社会目的而采用统一标准时间的全球区域。假设您有一个同时在印度和日本运行的应用程序。在这里,您不能对这两个区域使用相同的时区。因此,必须在不同的时区显示时间。
Java提供了各种内置类,例如TimeZone和ZoneId,以及诸如getTimeZone()之类的可以帮助在其他时区显示当前时间的方法。但是,在使用它们之前,必须将它们导入到您的Java程序中。

使用getTimeZone()和setTimeZone()方法
来自java.util包的TimeZone类提供了getTimeZone()方法,该方法接受时区ID作为字符串并返回给定ID的时区。获取时区后,使用其setTimeZone()方法设置Calendar对象的时区。然后,通过调用get()方法,您可以显示传入时区ID的当前时间。
示例
一个演示如何在其他时区显示当前时间的Java程序。
import java.util.Calendar;
import java.util.TimeZone;
public class Demo {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println("Europe/Sofia TimeZone...");
cal.setTimeZone(TimeZone.getTimeZone("Europe/Sofia"));
System.out.println("Hour = " + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("Minute = " + cal.get(Calendar.MINUTE));
System.out.println("Second = " + cal.get(Calendar.SECOND));
System.out.println("Millisecond = " + cal.get(Calendar.MILLISECOND));
}
}
执行此代码时,将显示以下输出:
Europe/Sofia TimeZone... Hour = 11 Minute = 16 Second = 44 Millisecond = 354
使用ZonedDateTime和ZoneId类
在这种方法中,我们首先使用ZoneId.of()方法为指定的时区ID检索ZoneId对象。然后,使用ZonedDateTime.now()创建一个ZonedDateTime对象,该对象表示检索到的ZoneId对象的当前时间。执行这些步骤后,您可以使用getHour()、getMinute()和getSecond()方法来显示指定时区的当前时间。
示例
以下Java程序使用ZonedDateTime和ZoneId类显示其他时区的当前时间。
import java.time.ZonedDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Demo {
public static void main(String[] args) {
System.out.println("America/New_York TimeZone...");
ZonedDateTime current_time = ZonedDateTime.now(ZoneId.of("America/New_York"));
System.out.println("Hour = " + current_time.getHour());
System.out.println("Minute = " + current_time.getMinute());
System.out.println("Second = " + current_time.getSecond());
}
}
运行此代码后,您将获得以下结果:
America/New_York TimeZone... Hour = 8 Minute = 4 Second = 57
使用LocalTime和ZoneId类
这是显示其他时区当前时间的另一种方法。在这里,我们使用ZoneId.of()方法获取时区,并通过将此时区作为参数值传递给LocalTime.now()方法,我们检索该时区的当前时间。
示例
在这个Java程序中,我们使用LocalTime和ZoneId类来显示其他时区的当前时间。
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Demo {
public static void main(String[] args) {
System.out.println("Asia/Tokyo TimeZone...");
LocalTime current_time = LocalTime.now(ZoneId.of("Asia/Tokyo"));
System.out.println("Hour = " + current_time.getHour());
System.out.println("Minute = " + current_time.getMinute());
System.out.println("Second = " + current_time.getSecond());
}
}
以上代码将生成以下结果:
Asia/Tokyo TimeZone... Hour = 21 Minute = 6 Second = 43
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP