我正在使用API.ai在Actions On Google API上构建。为了完成我的一个动作,我需要知道用户的位置和当地时间。
我能够成功地要求并收回用户的位置。
但是,我看不到任何获取用户本地时间或时区偏移的方法。有没有办法做到这一点?
(我意识到我可以使用该位置找出偏移量,但这需要另一个API调用或使用另一个库,我宁愿避免。)
提前致谢。
- 更新 -
根据Leon的回答,截至2017年1月18日,该信息目前尚未由API提供。为了获得所需信息,我请求了用户精确位置的权限,该位置返回lat和lng。然后我使用GeoNames时区API来获取时区偏移量。
答案 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)
设备的时区尚未提供给操作。