在Java中获取当前时区的日期
过去几个小时以来,我一直在网上搜索以获取系统时区中的日期时间。
当我使用calendar.getTimezone.getDefaultName时,它总是返回我格林尼治标准时间。(理想情况下,它应该返回我当前的时区,即IST)。我正在尝试将此字符串(“格林尼治标准时间”)“
2014-02-14T06:04:00:00”转换为我的时区datetime。它总是在格林尼治标准时间同时返回我。
我所看到的是,每个人都建议使用时区。即
dateFormatter.setTimezone("any_arbitary_timezone");
关键是我的应用程序将在不同的地理位置使用。我无法将其设置为特定的时区。应该将其设置为系统时区,以便可以显示用户当前所在的时区
回答:
这是一种获取TimeZone
与您本地系统时钟的偏移量匹配的ID的方法,
Calendar cal = Calendar.getInstance();long milliDiff = cal.get(Calendar.ZONE_OFFSET);
// Got local offset, now loop through available timezone id(s).
String [] ids = TimeZone.getAvailableIDs();
String name = null;
for (String id : ids) {
TimeZone tz = TimeZone.getTimeZone(id);
if (tz.getRawOffset() == milliDiff) {
// Found a match.
name = id;
break;
}
}
System.out.println(name);
以上是 在Java中获取当前时区的日期 的全部内容, 来源链接: utcz.com/qa/423473.html