getDisplayName method
A human-readable name for this zone at date.
style selects the form: 'rfc822' for a numeric offset (e.g.
'-0400'), 'long' for the full name (e.g. 'Eastern Standard Time'),
or the default abbreviation (e.g. 'EST').
Implementation
String getDisplayName(ILibDate date, [String style = '']) {
if (_zone == null) {
return _formatRfc822(_offset);
}
switch (style) {
case 'rfc822':
final double totalOffset =
_offset + (inDaylightTime(date) ? _dstSavings : 0);
return _formatRfc822(totalOffset);
case 'long':
final String? n = _zone!['n'] as String?;
if (n != null) {
if (n.contains('{c}')) {
final String str = inDaylightTime(date) ? 'Daylight' : 'Standard';
return n.replaceAll('{c}', str);
}
return n;
}
return _formatGmtOffset(date);
default:
final String? f = _zone!['f'] as String?;
if (f != null && f != 'zzz') {
if (f.contains('{c}')) {
String letter;
if (inDaylightTime(date)) {
final Map<String, dynamic>? s =
_zone!['s'] as Map<String, dynamic>?;
letter = (s?['c'] as String?) ?? '';
} else {
final Map<String, dynamic>? e =
_zone!['e'] as Map<String, dynamic>?;
letter = (e?['c'] as String?) ?? '';
}
return f.replaceAll('{c}', letter);
}
return f;
}
return _formatGmtOffset(date);
}
}