在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

回到顶部