我想使用带有AM/PM选择器的12小时格式的Flutter时间选择器,但Flutter只显示24小时格式。
我想得到这个格式:
但是flutter只显示了这种格式:
这是我的代码:
_selectTime(BuildContext context) async {
TimeOfDay picked = await showTimePicker(
context: context,
initialTime: TimeOfDay(hour: 12, minute: 00),
builder: (BuildContext context, Widget child) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: false),
child: child,
);
},
);
}
5条答案
按热度按时间mdfafbf11#
这个应该能告诉你你想要什么
nsc4cvqm2#
只需使用format()方法来获取所需AM、PM。
z31licg03#
可以使用此库Flutter DatePicker
显示12小时格式(AM/PM)的代码:
结果如下:
sczxawaw4#
在下面的代码片段中,我找到了表单Flutter Github Issues
时间选择器正在根据区域设置**选择格式 *。上面的代码正在将区域设置的国家/地区调整为美国,因为美国有12小时的时间格式。请使用您遇到问题的语言代码代替“es”。
所有的信用去的人谁张贴在上述链接的解决方案。我在这里重新张贴,所以,人们可以很容易地找到解决方案。
pftdvrlh5#
您使用了showTimePicker(),并且在其中分配了initialTime值,而它将考虑24小时格式,但如果您想要12小时格式,请遵循以下方法
我创建了一个函数,它将从按钮的onTap调用:(){}方法
我的函数
这里在builder内部应用了MediaQuery方法,MediaQuery将获取数据,因此,这里您需要指定为数据:媒体查询.of(上下文).copyWith(始终使用24小时格式:假),
您将获得12小时格式的时间
如果您喜欢观看完整代码
谢谢