我正在尝试从时间选择器那里获取时间,格式为Thrusday at 10:00pm until
。我的确在Google上找到了一种解决方案,可以使用intl
库中的dart格式日期以10:00pm
格式显示。但是这里的问题是,每当我尝试输入DataTime.now()
来获得time picker
时,都会出现此错误。
错误:不能将类型为'TimeOfDay'的值分配给类型为'DateTime'的变量。
这是我的代码
DateTime _currentTime = new DateTime.now();
Future<Null> selectTime(BuildContext context) async {
DateTime seletedTime = await showTimePicker(context: context, initialTime: _currentTime);
}
有什么办法可以使12 hour clock time
中的时间变得像这样10:00pm
。
任何帮助都会很棒。
答案 0 :(得分:0)
您需要使用:
TimeOfDay _currentTime = TimeOfDay.now();
因为,看着https://api.flutter.dev/flutter/material/showTimePicker.html,正在使用TimeOfDay
类型而不是DateTime
。
您需要将调用更改为以下内容,以使一切正常:
TimeOfDay selectedTime = await showTimePicker(context: context, initialTime: _currentTime);
有什么办法可以在12点钟的时间获取时间,例如晚上10:00。
对于第二个问题,您可以使用formatTimeOfDay
类中的MaterialLocalizations
。请参阅以下内容:
https://api.flutter.dev/flutter/material/MaterialLocalizations/formatTimeOfDay.html
然后将alwaysUse24HourFormat
设置为false
。
MaterialLocalizations localizations = MaterialLocalizations.of(context);
String formattedTime = localizations.formatTimeOfDay(selectedTime, alwaysUse24HourFormat: false);