現在の時間を扱うときによく
DateTime.now()
を使うことが多いと思います。
しかし、これは端末の時間を取得しているため、時間経過で重要な処理などがある場合には適しません。
なので実際の時間を取得する必要があります。
今回は実際の時間を取得する方法として外部のサーバから時間を取得することで対応したいと思います。実装に関しては以下です。
import 'package:dio/dio.dart'; Future<DateTime> fetchCurrentUTCTimeWithDio() async { Dio dio = Dio(); final response = await dio.get('https://worldtimeapi.org/api/timezone/Etc/UTC'); if (response.statusCode == 200) { return DateTime.parse(response.data['utc_datetime']); } else { throw Exception('Failed to fetch the time with Dio'); } }
上記のサイトから正確な時間を取得できます!
DateTime.now()は便利ですが、ユーザーが自由に時間を変えられるので要注意です!