如何在JodaTime中获取本地机器的TimeZone?

如何检测本地计算机所在的时区?

我试过DateTimeZone.getDefault()但是如果机器在德国的话,这并没有给我时区“德国”。

有可能吗?

如果您的主机位于德国, DateTimeZone.getDefault()将返回您的时区的ID,该ID应该是柏林。

在格式化程序中,您必须执行formatter.withZone(DateTimeZone.getDefault()).parseDateTime(yourDateTime) ,以便在String中使用时区。

“德国”不是时区。
如果您的机器在德国并且您使用来自jdk(而不是来自jodatime)的TimeZone.getDefault().getDisplayName() ,则会获得“MitteleuropäischeZeit”。

如果您需要国家/地区,请尝试Locale.getDefault().getDisplayCountry()