我正在尝试使用
在Java中读取Timezone
String timeZone = TimeZone.getDefault().getId();
如果启用了夏令时,它会给我正确的Timezone
,但是如果禁用了夏令时,则会给我GMT的结果。我希望不受系统设置影响而获得GMT。
Java中是否有办法始终将DST的结果设为ON?
例如 转到系统(Windows)-> ChangeDateandTimeSettings->更改时区->将Timezoene设置为UTC + 00:00都柏林,爱丁堡,里斯本,伦敦,现在运行上面的代码并自动调整系统时间,检查是否得到结果“欧洲/伦敦” 现在禁用您将结果作为 GMT 的复选框,在两种情况下,我都希望结果为欧洲/伦敦
答案 0 :(得分:-1)
也许您可以尝试获取某个时期的天数。
以下方法可找到期间开始日期到期间结束日期之间的天数。这意味着开始日期被计为该期间内的天数,而不是结束日期。例如,1月1日至1月10日总共包括9天。此方法考虑了夏令时,以确保跨DST边界正确地计算天数。
例如,
import org.joda.time.Days;
import org.joda.time.LocalDate;
// …
public int getDaysInPeriod() {
final LocalDate start;
final LocalDate end;
final int daysInCycle;
if (end.isBefore(start) || end.isEqual(start)) {
return 0;
}
return Days.daysBetween(start, end).getDays();
}
希望这会有所帮助。