dateTimeToZone function
Takes a timezone and Datetime.
Returns the given DateTime adjusted to that timezone.
See timeZoneOffsets
for all available time zones.
Assumes datetime is in UTC.
Implementation
DateTime dateTimeToZone({required String zone, required DateTime datetime}) {
DateTime returner;
Duration subtr;
Duration addr;
datetime = datetime.toUtc();
var offset = timeZoneOffsets[zone];
if (offset == null) throw ArgumentError('Unsupported zone: $zone');
if (offset <= 0) {
subtr = Duration(
hours: offset.abs().truncate(),
minutes: ((offset.abs() % 1) * 60).round());
returner = datetime.subtract(subtr);
} else {
addr = Duration(
hours: offset.truncate(), minutes: ((offset % 1) * 60).round());
returner = datetime.add(addr);
}
return returner;
}