use*_*717 15 java timezone datetime properties system
当我启动java程序时java -Duser.timezone="UTC",
System.out.println( System.getProperty( "user.timezone" ) );
System.out.println( new Date() ); // prints time in UTC
Run Code Online (Sandbox Code Playgroud)
打印UTC时间,但是当我在代码中设置如下:
System.setProperty( "user.timezone", "UTC" );
System.out.println( System.getProperty( "user.timezone" ) ); // prints 'UTC'
System.out.println( new Date() ); // prints time in local zone, not in UTC
Run Code Online (Sandbox Code Playgroud)
不以UTC格式打印时间.我需要在代码中设置时间.不寻找乔达
环境:JDK 1.6/Windows XP
请帮忙.非常感谢!
leo*_*loy 23
您的问题是,早在JVM启动时,Java已经设置了默认时区,它已TimeZone.setDefault(...);使用原始"user.timezone"属性进行调用.之后改变财产System.setProperty("user.timezone", "UTC")本身没有任何影响.
这就是为什么在开始时设置默认时区的正常方法是: java -Duser.timezone=...
如果您坚持以编程方式设置时区,则可以在更改属性后将默认时区设置null为强制重新计算:
System.setProperty("user.timezone", "UTC");
TimeZone.setDefault(null);
Run Code Online (Sandbox Code Playgroud)
(从这里).
或者,更简单,更清洁,直接分配TimeZone.setDefault(...);.
| 归档时间: |
|
| 查看次数: |
18831 次 |
| 最近记录: |