正如标题所述,我得到了一个字符串“ 01:23.290”,它看起来像一个“持续时间”,但不是。现在,我需要使用它与真实的Duration进行比较,而我不知道如何处理它。有什么方法吗?
答案 0 :(得分:2)
使用这样的解析函数,然后使用Duration
的比较方法:
Duration parseDuration(String s) {
int hours = 0;
int minutes = 0;
int micros;
List<String> parts = s.split(':');
if (parts.length > 2) {
hours = int.parse(parts[parts.length - 3]);
}
if (parts.length > 1) {
minutes = int.parse(parts[parts.length - 2]);
}
micros = (double.parse(parts[parts.length - 1]) * 1000000).round();
return Duration(hours: hours, minutes: minutes, microseconds: micros);
}
答案 1 :(得分:0)
简单来说,toString()方法可以做到这一点。有关详细信息:
https://docs.flutter.io/flutter/dart-core/Duration/toString.html
将此复制到dartpad并尝试一些新的东西:
void main() {
var duration = Duration(minutes: 42);
print('${duration.toString()}');
}
或者您可以为持续时间toString方法分配一个String变量。
String sDuration = duration.toString();
print('${sDuration}');
或
String duration = Duration(minutes: 42).toString();