flutter 我有一个字符串,如“6:45AM”,那么我如何将其转换为24小时TimeOfDay或DateTime格式

huwehgph  于 2023-02-05  发布在  Flutter
关注(0)|答案(5)|浏览(269)

我想将字符串(12小时)“6:45PM”转换为18:45:00(24小时)TimeOfDay格式,如何完成?

iyzzxitl

iyzzxitl1#

您可以尝试使用DateFormat,只需要包含对pubspec.yaml的intl依赖项即可
首先将该值解析为日期,然后按您想要的方式设置其格式

import 'package:intl/intl.dart';
// parse date
DateTime date= DateFormat.jm().parse("6:45 PM");
DateTime date2= DateFormat("hh:mma").parse("6:45PM"); // think this will work better for you
// format date
print(DateFormat("HH:mm").format(date));
print(DateFormat("HH:mm").format(date2));

参考文献

i34xakig

i34xakig2#

试试这个:

var df =  DateFormat("h:mma");
 var dt = df.parse('6:45PM');
 print(DateFormat('HH:mm').format(dt));
wswtfjt7

wswtfjt73#

如果是“时:分:秒PM”或“时:分:秒AM”-

String [] splitedString = yourString.split(":");
String newFormat = splitedString[2].contain("PM") ? String.valueOf(Integer.parseInt(splitedString[0]) + 12) : splitedString[0] + ":" + splitedString[1] + ":" + splitedString[2].substring(0,2);
sg2wtvxw

sg2wtvxw4#

如果使用TimeOfDay,则可以使用以下代码轻松地将其转换为24小时制

TimeOfDay? selectedTime = TimeOfDay.now();

var replacingTime = selectedTime!.replacing(
                            hour: selectedTime!.hour,
                            minute: selectedTime!.minute);

String formattedTime = replacingTime.hour.toString() +
                                ":" +
                                replacingTime.minute.toString();

这对我很有效。

wpx232ag

wpx232ag5#

尝试以下格式:

DateFormat('HH:mm').format(DateTime.now())

相关问题