正如标题所说,我得到了一个字符串'01:23.290',它看起来像一个Duration,但不是。现在我需要用这个来与真实的的Duration进行比较,我不知道如何处理它。有什么方法吗?
qoefvg9y1#
使用如下解析函数,然后使用Duration的比较方法:
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); }
7qhs6swi2#
包duration提供函数parseTime和tryParseTime来解析Duration().toString()获得的持续时间字符串。用法很简单:
duration
parseTime
tryParseTime
Duration().toString()
print(parseTime(Duration(hours: 5, seconds: 10, milliseconds: 567).toString()));
tcbh2hod3#
使用DateTime和DateFormat的另一种方法:
Duration durationParse(String time) { final ts = DateFormat('y-MM-dd').format(DateTime.now()); final dt = DateTime.parse('$ts $time'); return Duration(hours: dt.hour, minutes: dt.minute, seconds: dt.second); }
ru9i0ody4#
List<String> timeParts = time.split(':'); Duration duration = Duration(hours: int.parse(timeParts[0]), minutes: int.parse(timeParts[1]), seconds: int.parse(timeParts[2]));
4条答案
按热度按时间qoefvg9y1#
使用如下解析函数,然后使用
Duration
的比较方法:7qhs6swi2#
包
duration
提供函数parseTime
和tryParseTime
来解析Duration().toString()
获得的持续时间字符串。用法很简单:
tcbh2hod3#
使用DateTime和DateFormat的另一种方法:
ru9i0ody4#