encode method
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();
}