如何获取格式化的时区偏移量?

时间:2019-11-05 12:38:39

标签: flutter dart

如何获取这种格式的时区偏移量

+02:00

我尝试了DateTime.now().timeZoneOffset 但这只会给我2:00:00.000000

1 个答案:

答案 0 :(得分:1)

由于DateTime.timeZoneOffsetDuration,因此您可以使用Duration.inHours提取偏移量的小时数。

但是,由于需要非常特定的格式,因此可以使用使用Duration.inHours的函数来创建它:

String formattedTimeZoneOffset(DateTime time) {
  String twoDigits(int n) {
    if (n >= 10) return '$n';
    return '0$n';
  }

  final duration = time.timeZoneOffset, hours = duration.inHours, minutes = duration.inMinutes.remainder(60).abs().toInt();

  return '${hours > 0 ? '+' : '-'}${twoDigits(hours.abs())}:${twoDigits(minutes)}';
}