format method
Implementation
String format(String format) {
// 处理负数
final isNegative = inMicroseconds < 0;
final absDuration = abs();
// 1. 提取格式字符串中的所有时间单位(d/h/m/s/f),并确定最左侧的单位
final units = _extractUnits(format);
final String? primaryUnit = units.isNotEmpty ? units.first : null;
// 2. 计算各单位的数值(区分累加值/周期值)
final values = _calculateValues(absDuration, primaryUnit);
// 3. 替换格式字符串中的占位符
String result = format;
result = _replacePlaceholder(result, 'd', values['d']!);
result = _replacePlaceholder(result, 'h', values['h']!);
result = _replacePlaceholder(result, 'm', values['m']!);
result = _replacePlaceholder(result, 's', values['s']!);
result = _replacePlaceholder(result, 'f', values['f']!);
// 添加负号
return isNegative ? '-$result' : result;
}