Java时区
Java TimeZone类表示时区偏移量,还可以计算夏令时。
时区是地球上的一个区域,出于所有目的,该区域均遵循统一的标准时间。
时区对于程序很重要,它使用户感觉应用程序在用户本地。
Java时区
Java TimeZone类用于在程序中实现和操纵各种TimeZone。
该类是java.util
包的一部分,应与Calendar
类一起使用。
从Java 8开始,对于日期时间API,时区由java.time.ZoneId
类表示。
仅当您使用Java 8日期时间类(如" ZonedDateTimeclass")时才需要此方法。
如果您使用Java 7和更早的日期时间API中的Calendar类,则仍可以使用java.util.TimeZone
类。
创建Java TimeZone实例
有两种创建TimeZone对象的方法。
- 使用getDefault()方法:TimeZone类包含一个getDefault()方法,该方法根据应用程序或者程序其中运行的时区提供TimeZone对象。
如果上述程序在旧金山运行,则默认时区IST将作为TimeZone对象提供。
- 使用getTimeZone()方法:TimeZone类包含getTimeZone()方法,其中该方法的输入参数是时区ID。
我们在简介部分讨论了TimeZone应该与Calendar一起使用。
让我们尝试了解应如何做。
在日历中使用TimeZone
为了将TimeZone与Calendar一起使用,我们需要Calendar类的实例。
我们将看一个如何从日历获取时区的示例。
TimeZone tz = TimeZone.getDefault();
现在,如果要为Calendar实例设置时区,我们可以按以下步骤执行该任务。
TimeZone tz = TimeZone.getTimeZone(“America/Chicago”)
Java TimeZone方法
getDisplayName():TimeZone的标准时间名称,适合在默认语言环境中呈现给用户。
getID():返回时区的ID。
getOffset(long date):返回指定时间该时区与UTC的偏移量。
我们还可以使用时区转换来根据提供的ID来转换时区,当应用程序在两个特定时区中运行时,需要用例。
Java TimeZone转换
这是将日期从日历转换为不同时区的示例。
Calendar calendar = new GregorianCalendar(); TimeZone timeZone = calendar.getTimeZone();
以上示例产生的输出:
calendar.setTimeZone(timeZone);
在上面的示例中,以毫秒表示的时间在美洲和亚洲是相同的,但是表示时区变化的小时字段存在差异。
Java TimeZone ID
我们可以使用getAvailableIDs()并遍历方法的结果来获取可用于TimeZone的ID列表。
TimeZone tz = TimeZone.getDefault(); System.out.println(tz.getDisplayName()) //San Franceco Standard Time