将时间转换为上午/下午抖动

时间:2020-03-19 08:10:12

标签: datetime flutter dart

如何将时间转换为上午/下午?

我有这个输出

@SuppressWarnings("squid:S00101")

这是我尝试过的

I/flutter (17720): 9:00:00
I/flutter (17720): 11:00:00
I/flutter (17720): 12:00:00

DateUtil

 final item = snapshot.data[index];
 print("Time " + item['time'].toString());

 DateTime dateTime = DateTime.parse(item['time'].toString());
 print(DateUtil().formattedTime(dateTime));

错误

I / flutter(17720):时间09:00:00

════════小部件库捕获到异常 Format以下FormatException是 引发建筑标签(脏,状态:TagsState#b3a2f):无效日期 格式09:00:00

3 个答案:

答案 0 :(得分:10)

使用此代码:

DateFormat('hh:mm a').format(DateTime.now());

根据 intl 库,它指出 a 代表 AM/PM。

答案 1 :(得分:7)

您可以使用 intl https://pub.dev/packages/intl 并格式化您的DateTime DateFormat.yMEd()。add_jms()。format(DateTime.now()); ==>'星期四,2013年5月23日上午10:21:47'

答案 2 :(得分:0)

DateFormat class

DateFormat 用于以区域设置敏感的方式格式化和解析日期。

转换时间

print(DateFormat.jm().format(DateFormat("hh:mm:ss").parse("14:15:00")));
<块引用>

输出:凌晨 3:20

转换日期

print(DateFormat('yyyy-MMMM-dd').format("2021-05-14 00:00:00.000"));
<块引用>

产出: 2021 年 5 月 14 日

示例:

时间选择器

Future<Null> _selectTime(BuildContext context) async {
final TimeOfDay picked = await showTimePicker(
  context: context,
  initialTime: _con.selectedTime,
);
if (picked != null) {
  String selTime =
      picked.hour.toString() + ':' + picked.minute.toString() + ':00';
  print(DateFormat.jm().format(DateFormat("hh:mm:ss").parse(selTime)));
}}

日期选择器

_selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
  context: context,
  initialDate: _con.selectDateAndTime,
  firstDate: DateTime(2021),
  lastDate: DateTime(2040),
);
if (picked != null) {
  print(picked);
}}