format method

String format()

Return ISO8601 String of format hh:mm:ss.sss+hh:mm:ss

Implementation

String format() {
  var buffer = StringBuffer();

  // DateTime with millisecond/microsecond leads to variable length ISO String
  DateTime simpleDateTime = DateTime(_dateTime.year, _dateTime.month,
      _dateTime.day, _dateTime.hour, _dateTime.minute, _dateTime.second);
  buffer.write(simpleDateTime.toIso8601String().substring(11, 19));

  int totalMicroseconds = _nanoseconds + Temporal.getNanoseconds(_dateTime);
  if (totalMicroseconds > 0) {
    buffer.write('.${totalMicroseconds.toString().padLeft(9, '0')}');
  }

  if (_offset != null) {
    if (_offset!.inSeconds == 0) {
      buffer.write('Z');
    } else {
      buffer.write(Temporal.durationToOffset(_offset!));
    }
  }

  return buffer.toString();
}