我们在MS SQL Server中使用了[GetServerTimeZoneInformation]定义的函数,该函数返回DaylightName或StandardName、ActiveTimeBias、Bias、DaylightBias、IsDST它使用Windows注册表项来获取这些信息,但我必须编写使用linux(CentOs(操作系统的代码,并且我必须使用Java获取这些信息。可以提供这些值的Java API是什么?
TimeZone类允许您访问这些数据的全部或大部分,例如:
TimeZone tz = TimeZone.getDefault();
String daylightName = tz.getDisplayName(true, TimeZone.LONG);
String standardName = tz.getDisplayName(false, TimeZone.LONG);
int rawOffset = tz.getRawOffset();
int daylightOffset = tz.getDSTSavings();
boolean isInDSTNow = tz.inDaylightTime(new Date());
然而,请注意,Java使用自己版本的tzdb
,而不是系统范围内安装的tzdb,因此Java报告的内容与您从本机操作系统工具中获得的内容之间可能存在差异,尤其是对于最近更改的时区。