我使用ShowTimePickerclass 根据我的意愿选择时间,但想在 PM 或 AM 中显示,Text例如 9:00 AM、10:00 PM。
表示采用 12 小时格式。
代码 :
import 'package:flutter/material.dart';
class ShowTimePickerDemo extends StatefulWidget {
@override
_ShowTimePickerDemoState createState() => _ShowTimePickerDemoState();
}
class _ShowTimePickerDemoState extends State<ShowTimePickerDemo> {
TimeOfDay pickedTime = TimeOfDay.now();
Future<Null> _selectTime(BuildContext context) async {
final TimeOfDay response = await showTimePicker(
context: context,
initialTime: pickedTime,
);
if (response != null && response != pickedTime) {
setState(() {
pickedTime = response;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
alignment: Alignment.center,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(pickedTime.toString()),
SizedBox(height:10),
FlatButton(
color: Colors.blue,
onPressed: (){
_selectTime(context);
},
child: Text("Show Time Pikcer")
)
],
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
输出截图:
Jes*_*son 10
选择时间后,您可以使用 对其进行格式化new DateFormat.jm(),这将输出,例如5:00 PM。有关更多信息,请参阅DateFormat 文档。
编辑:您可以通过几种方法来做到这一点。
一种方法是使用函数,如下所示:
String formatTimeOfDay(TimeOfDay tod) {
final now = new DateTime.now();
final dt = DateTime(now.year, now.month, now.day, tod.hour, tod.minute);
final format = DateFormat.jm(); //"6:00 AM"
return format.format(dt);
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是在文档提供的示例中使用它:
print(new DateFormat.yMMMd().format(new DateTime.now()));
Run Code Online (Sandbox Code Playgroud)