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

时间:2019-07-19 09:18:00

标签: flutter dart

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

3 个答案:

答案 0 :(得分:2)

您可以尝试使用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));

参考

答案 1 :(得分:0)

尝试一下:

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

答案 2 :(得分:0)

对于“ hh:mm:ssPM”或“ hh:mm:ssAM”-

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