encode method

String encode(
  1. DateTime dateTime
)

Converts a DateTime to a String as specified by the pattern.

The DateTime.year must not be negative.

Implementation

String encode(DateTime dateTime) {
  if (dateTime.year < 0) {
    throw ArgumentError.value(
      dateTime,
      'dateTime',
      'Year must not be negative',
    );
  }
  var buffer = StringBuffer();
  for (var i = 0; i < _blocks.length; i++) {
    var start = _blocks.starts[i];
    var end = _blocks.ends[i];
    var length = end - start;

    var previousEnd = i > 0 ? _blocks.ends[i - 1] : 0;
    if (previousEnd < start) {
      buffer.write(pattern.substring(previousEnd, start));
    }
    var formatCharacter = _blocks.formatCharacters[i];
    var number = _extractNumberFromDateTime(
      formatCharacter,
      dateTime,
      length,
    );
    if (number.length > length) {
      number = number.substring(number.length - length);
    } else if (length > number.length) {
      number = number.padLeft(length, '0');
    }
    buffer.write(number);
  }
  if (_blocks.length > 0) {
    var lastEnd = _blocks.ends.last;
    if (lastEnd < pattern.length) {
      buffer.write(pattern.substring(lastEnd, pattern.length));
    }
  }
  return buffer.toString();
}