Flutterで文字列をTimeOfDayに変換する方法


方法1: 自分で変換関数を作成する この方法では、文字列を解析してTimeOfDayオブジェクトに変換する関数を作成します。

TimeOfDay stringToTimeOfDay(String timeString) {
  List<String> parts = timeString.split(':');
  int hours = int.parse(parts[0]);
  int minutes = int.parse(parts[1]);
  return TimeOfDay(hour: hours, minute: minutes);
}

使用例:

String timeString = "09:30";
TimeOfDay time = stringToTimeOfDay(timeString);
print(time); // 結果: 09:30

方法2: intlパッケージを使用する intlパッケージを使うと、文字列のフォーマットと解析を行うことができます。

まず、intlパッケージをプロジェクトに追加します。pubspec.yamlファイルに以下の依存関係を追加してください。

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0

次に、以下のコードを追加して、intlパッケージをインポートします。

import 'package:intl/intl.dart';

以下のコードは、DateFormatクラスを使用して文字列をTimeOfDayに変換する例です。

TimeOfDay stringToTimeOfDay(String timeString) {
  DateFormat format = DateFormat.Hm();
  DateTime dateTime = format.parse(timeString);
  return TimeOfDay(hour: dateTime.hour, minute: dateTime.minute);
}

使用例:

String timeString = "09:30";
TimeOfDay time = stringToTimeOfDay(timeString);
print(time); // 結果: 09:30

上記のいずれの方法を選んでも、文字列をTimeOfDayに変換することができます。自分のプロジェクトの要件に合わせて適切な方法を選択してください。