encode method
Encodes the value
using the encoder
.
The implementation must use one of the typed Encoders .encode...()
methods to encode the value.
It is expected to call exactly one of the encoding methods a single time. Never more or less.
Implementation
@override
void encode(DateTime value, Encoder encoder) {
if (convertUtc) {
value = value.toUtc();
}
if (encoder.canEncodeCustom<DateTime>()) {
encoder.encodeObject<DateTime>(value);
} else {
switch (preferredFormat) {
case DateTimeFormat.auto:
if (encoder.isHumanReadable()) {
encoder.encodeString(value.toIso8601String());
} else {
encoder.encodeInt(value.millisecondsSinceEpoch);
}
case DateTimeFormat.iso8601:
encoder.encodeString(value.toIso8601String());
case DateTimeFormat.unixMilliseconds:
encoder.encodeInt(value.millisecondsSinceEpoch);
}
}
}