我正在尝试构建具有不同国家时区的世界应用程序。我可以使用api来获取时间,但是在调用api时,该特定实例的时间正在显示,并且不会每分钟更新一次。有什么特殊的方法可以实现这一目标吗?
void getTime() async{
Response response =
await get('http://worldtimeapi.org/api/timezone/Australia/Sydney');
Map dataAus = jsonDecode(response.body);
String dateTimeAus = dataAus['datetime'];
String offsetAus = dataAus['utc_offset'].substring(1, 3);
DateTime nowAus = DateTime.parse(dateTimeAus);
nowAus = nowAus.add(Duration(hours: int.parse(offsetAus)));
}
答案 0 :(得分:0)
我找到了解决方案,无论如何我的工作可能还有许多其他有效的方法。使用Timer每秒调用一次api。
getTime(String country, continent) async {
Response response =
await get('http://worldtimeapi.org/api/timezone/$continent/$country');
Map data = jsonDecode(response.body);
String dateTime = data['datetime'];
String offset = data['utc_offset'].substring(1, 3);
DateTime time = DateTime.parse(dateTime);
time = time.add(Duration(hours: int.parse(offset)));
final timeStr = DateFormat('hh : mm a').format(time);
return timeStr.substring(0, 10);
}
Timer timer;
@override
void initState() {
super.initState();
setState(() {
Timer(
Duration(seconds: 1) - Duration(milliseconds: _localDateTime.second),
_updateTime,
);
});
}