gpt4 book ai didi

flutter - 如何从带有 flutter 的TimeOfDay以AM或PM格式显示时间?

转载 作者:行者123 更新时间:2023-12-03 03:22:34 28 4
gpt4 key购买 nike

我使用ShowTimePicker类根据自己的意愿选择时间
但要在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")
)
],
),
),
);
}
}

OutPut屏幕截图:

enter image description here

最佳答案

选择时间后,可以使用new DateFormat.jm()对其进行格式化,例如,输出5:00 PM。有关更多信息,请参见DateFormat docs

编辑:您可以通过几种方法执行此操作。

一种方法是使用函数,如下所示:

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);
}

另一种使用方法是在 docs提供的示例中:

print(new DateFormat.yMMMd().format(new DateTime.now()));

关于flutter - 如何从带有 flutter 的TimeOfDay以AM或PM格式显示时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61561015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com