如何设置java时区?
我的系统时间与 java 的 new Date() 告诉的不同(+ 4 小时),
所以我认为这是因为一些java设置。
如何使java时间始终与我的linux系统时间相同?
(通过编辑一些配置文件)
My system time differs from what java's new Date() tells (+ 4 hours),
so I think it's because some java settings.
How can I make java time to be always as my linux system time?
(by editing some configuration file)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以在应用程序启动时使用
TimeZone.setDefault(..)
,或将时区作为命令行参数传递:-Duser.timezone=GMT
You can use
TimeZone.setDefault(..)
when your application starts, or pass the timezone as command-line argument:-Duser.timezone=GMT
如果您想以编程方式更改时区,那么您可以使用:
我更喜欢这种方法,因为它不依赖于人们记住使用正确的时区参数运行我的代码。
If you want to change the time zone programmatically then you can use:
I prefer this method because it doesn't rely on people remembering to run my code with the correct time zone arguments.
这段代码对我有帮助。
This code helped me.
此代码打印的日期/时间正确吗?否则,还有其他问题。
Is this code printing the right date/time? Else, there's some other problem.
避免需要
使日期和时间代码独立于 JVM 的时区设置。无论如何,该设置都是不可靠的,因此无论如何不要使用它是最好的。
对于一个时区。
对于 UTC(偏移量为零)。
是的,我知道打印老式的 java.util.Date 并因此隐式调用其 toString 方法会导致它使用时区设置来将字符串呈现为打印。不过,您不应该再使用
Date
类。它设计得很糟糕。使用 JVM 时区并因此假装Date
拥有时区的令人困惑的特征只是其众多缺点之一。使用 java.time(现代 Java 日期和时间 API)进行日期和时间工作。如果无法避免需要
将 Unix 中的环境变量
TZ
设置为所需的时区 ID。例如,这在我的 Mac 上适用:链接
Oracle 教程:日期时间 解释如何使用java.time。
Avoid the need
Make your date and time code independent of the JVM’s time zone setting. The setting is unreliable anyway, so not using it will be for the best regardless.
For a time zone.
For UTC (an offset of zero).
Yes, I know that printing an old-fashioned
java.util.Date
and thereby implicitly invoking itstoString
method causes it to use the time zone setting for rendering the string to be printed. You should no longer use theDate
class, though. It’s poorly designed. The confusing trait of using the JVM time zone and thus pretending that aDate
holds a time zone is just one of its many bad sides. Use java.time, the modern Java date and time API, for your date and time work.If you can’t avoid the need
Set the environment variable
TZ
in Unix to the desired time zone ID. For example this worked for me on my Mac:Link
Oracle tutorial: Date Time explaining how to use java.time.
使用 System.getCurrentTimeInMillis(); ,
然后获取日历实例并设置您的时间。
use
System.getCurrentTimeInMillis();
and then take a calendar instance and set Your time..