tzfileLocationToNativeLocation function

Location tzfileLocationToNativeLocation(
  1. Location loc
)

Implementation

Location tzfileLocationToNativeLocation(tzfile.Location loc) {
  // convert to milliseconds
  final transitionAt = loc.transitionAt
      .map(
        (i) => (i < -_maxSecondsSinceEpoch)
            ? -_maxMillisecondsSinceEpoch
            : i * 1000,
      )
      .toList();

  final zones = <TimeZone>[];

  for (final z in loc.zones) {
    zones.add(
      TimeZone(
        z.offset * 1000,
        isDst: z.isDst,
        abbreviation: loc.abbreviations[z.abbreviationIndex],
      ),
    );
  }

  return Location(loc.name, transitionAt, loc.transitionZone, zones);
}