相关疑难解决方法(0)

JDZ6中的TimeZone.setDefault更改

我刚刚注意到JDK 6设置默认TimeZone的方法与JDK5不同.

以前,新的默认值将存储在线程局部变量中.使用JDK6(我刚刚查看了1.6.0.18),实现已经改变,因此如果用户可以写入"user.timezone"属性,或者如果没有安装SecurityManager,则时区会在整个VM范围内发生变化!否则会发生线程局部更改.

我错了吗?这似乎是一个相当大的变化,我在网上找不到任何关于它的东西.

这是JDK6代码:

 private static boolean hasPermission() {
  boolean hasPermission = true;
  SecurityManager sm = System.getSecurityManager();
  if (sm != null) {
   try {
    sm.checkPermission(new PropertyPermission("user.timezone", "write"));
   } catch (SecurityException e) {
    hasPermission = false;
   }
  }
  return hasPermission;
 }

 /**
  * Sets the <code>TimeZone</code> that is
  * returned by the <code>getDefault</code> method.  If <code>zone</code>
  * is null, reset the default to the value it had originally when the
  * VM first started.
  * @param zone the new default …
Run Code Online (Sandbox Code Playgroud)

java timezone default jdk1.6 jdk1.5

17
推荐指数
1
解决办法
9415
查看次数

标签 统计

default ×1

java ×1

jdk1.5 ×1

jdk1.6 ×1

timezone ×1