我可以从Google上的操作中获取请求者的当地时间(或偏移)吗?

时间:2017-01-18 11:30:01

标签: actions-on-google google-home api-ai

我正在使用API​​.ai在Actions On Google API上构建。为了完成我的一个动作,我需要知道用户的位置和当地时间。

我能够成功地要求并收回用户的位置。

但是,我看不到任何获取用户本地时间或时区偏移的方法。有没有办法做到这一点?

(我意识到我可以使用该位置找出偏移量,但这需要另一个API调用或使用另一个库,我宁愿避免。)

提前致谢。

- 更新 -

根据Leon的回答,截至2017年1月18日,该信息目前尚未由API提供。为了获得所需信息,我请求了用户精确位置的权限,该位置返回lat和lng。然后我使用GeoNames时区API来获取时区偏移量。

2 个答案:

答案 0 :(得分:2)

虽然根据我的知识,时区并未包括在内。您可以使用位置权限和库来动态获取本地时间。

我在这里使用的库是momentTz和timezone。后者获取由位置权限提供的lat / long插值的时区。然后使用已解决的时区将UTCT标准时间转换为当地时间,以及本地提供的当地时间。

const startTz = momentTz(); //Returns standard UTC time, independent of locality
const timestamp = 1402629305; // Any random timestamp will work, it wouldn't unnecessarily impede your results 

timezone.data(latitudeValue, longitudeValue, timestamp, function(err, tz) {
  if (err) {
    console.log(err);
  }

var zoneHolder = tz.raw_response.timeZoneId; //Appropriate timezone is returned here based on latitudeValue and longitudeValue passed
const localTime = startTz.tz(zoneHolder).format('LLL'); //local time which you seek;
});

答案 1 :(得分:0)

设备的时区尚未提供给操作。