方法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に変換することができます。自分のプロジェクトの要件に合わせて適切な方法を選択してください。