关于 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 中的工作方式相同。我只是想理解为什么他们给我不同的价值。
差异很可能是夏令时 (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
}