如何将facebook的userinfo timzone字段转换为时区名称?

时间:2018-02-12 07:51:43

标签: facebook facebook-graph-api timezone timezone-offset

我在使用oauth2 access_token

后从facebook获取用户信息
{
 ...
 "timezone": 5.5,
}

现在我需要将其转换为Zone Name以填充openid connect zoneinfo。

ex : "Asia/Calcutta"

我是从印度请求,在时区地图中我看到+05:30是正确的。但Facebook发行5.5我无法解决这个问题。请帮助我。

1 个答案:

答案 0 :(得分:0)

我仍然不知道你正在使用哪种语言(如果有的话)。这是一个Java解决方案:

    long secondsPerHour = TimeUnit.HOURS.toSeconds(1);
    long offsetSeconds = Math.round(5.5 * secondsPerHour);
    if (offsetSeconds < ZoneOffset.MIN.getTotalSeconds()
            || offsetSeconds > ZoneOffset.MAX.getTotalSeconds()) {
        System.out.println("Not a valid UTC offset, is out of range");
    } else {
        ZoneOffset offset = ZoneOffset.ofTotalSeconds((int) offsetSeconds);
        System.out.println(offset);
    }

打印

+05:30

您可以在预期ZoneOffset的任何位置使用此代码段中的ZoneId,因为ZoneOffsetZoneId的子类。 ZoneId是表示时区的现代Java类。