我只是注意到,与JDK5相比,JDK 6设置默认TimeZone的方法有所不同。
以前,新的默认值将存储在线程局部变量中。使用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 time zone
* @see #getDefault
*/
public static void setDefault(TimeZone zone)
{
if (hasPermission()) {
synchronized (TimeZone.class) {
defaultTimeZone = zone;
defaultZoneTL.set(null);
}
} else {
defaultZoneTL.set(zone);
}
}
而之前(在JDK5中)只是:
/**
* 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 time zone
* @see #getDefault
*/
public static synchronized void setDefault(TimeZone zone)
{
defaultZoneTL.set(zone);
}
搜索错误数据库实际上是一个好主意:)
http://bugs.sun.com/view_bug.do?bug_id=6352812
并且(文档):
http://bugs.sun.com/view_bug.do?bug_id=6181786
简介:JDK 1.5是该规则的一个例外,对于JDK 1.6,一切恢复为“正常”,根据文档,这是时区更改在VM范围内。
我在JDK5中使用以下API导入sun.text.normalizer: 公共静态字符串分解(String str、boolean compat、int选项) 公共静态final int getClass(int ch) 公共静态字符串规范化(字符串str、Mode Mode、int选项)
我有一个问题,经过多次尝试后不知道如何解决它。我JavaJDK 6的 /Maven项目并在Eclipse Luna中安装了Maven 3.2.5现在我正在尝试运行清洁安装命令来创建ZIP包,但收到以下错误消息: 无法在项目ABC上执行目标org.apache.maven.plugins:maven编译器插件:3.1:compile(默认编译):编译错误:无效目标版本:1.7 以前是否有人遇到过此问
在将OpenSAML从1.1升级到2.6.1(需要xerces-impl依赖项)之后,启动时会出现以下堆栈: xerces-impl重新定义了一些jre类,并附带了重新定义一些jre接口的XML-API。DataType.DataTypeFactoryImpl来自xerces-impl。 我读过用Java/Maven处理“Xerces地狱”?并尝试排除XML-API,但xerces-impl抛出N
问题内容: 关于JDK 5的这个问题说,[DK 5没有提供任何实现,但是JDK 6应该有一个实现。 据我所知,该类未随JDK提供,并且无法在其中找到任何其他类似的类。 那么,JDK6的情况如何? 我知道有许多类似Commons和JBoss的实现,但是我们有一个严格的第三方lib策略,因此我试图避免重新发明轮子。 问题答案: 不,在Java 5和Java 6之间情况没有改变。 不幸的是,Java S
问题内容: 在IE 11中,ToLocaleDateString()获得了有趣的结果。返回的字符串在浏览器中看起来不错,例如“ 1/28/2014 11:00:46 AM”,但是如果我将该值复制并粘贴到纯文本编辑器中,它看起来像这样:“?1?/? 28?/?2014?11?:?00?:?46??AM”。 有趣的是,如果我将文本粘贴到Microsoft产品中,看起来还不错…问题是,如果您尝试以编程方
我正在尝试更改geopandas数据帧的CRS。目前的CRS是: 当我尝试dfTrans.to_crs('epsg:4326')时,我得到以下错误: 对于pyproj中的一个简单命令,pyproj.CRS.from_epsg(4326),我得到了相同的错误: 我不知道发生了什么,但似乎有一个底层函数调用一个不存在的列。有没有办法解决这个问题?