Dart DateTime 时区偏移量在指定日期和 DateTime.now() 之间有所不同

问题描述 投票:0回答:1

关于 DateTimes 的基本 dart 问题,我遇到了麻烦。具体这段代码:

void main() {
  print('OFFSET: ${DateTime.now().timeZoneOffset}'); // OFFSET: -4:00:00.000000
  print('OFFSET2: ${DateTime(2021).timeZoneOffset}'); // OFFSET2: -5:00:00.000000
}

这在 dartpad 中的工作方式与命令行中的普通 dart 中的工作方式相同。我只是想理解为什么他们给我不同的价值。

flutter dart datetime timezone
1个回答
0
投票

差异很可能是夏令时 (DST),因为

DateTime(2021)
将在冬季创建一天(我们没有 DST),而
DateTime.now()
将在夏季创建日期(许多国家/地区)有夏令时)。

您可以尝试打印时区名称:

void main() {
  print('OFFSET: ${DateTime.now().timeZoneName}'); // OFFSET: Romance Daylight Time
  print('OFFSET2: ${DateTime(2021).timeZoneName}'); // OFFSET2: Romance Standard Time
}
© www.soinside.com 2019 - 2024. All rights reserved.