拿到這個需求的第一個想法是:
使用 DateTime 的 timeZoneName 直接獲取時區(qū)
print(DateTime.now().timeZoneName);
得到的結(jié)果是當(dāng)前的時區(qū)的簡寫,結(jié)果太寬泛不是我們想要的結(jié)果
flutter: CST
然后百度一通沒有結(jié)果,后來在stackoverflow上發(fā)現(xiàn) flutter_native_timezone 的存在
其使用簡潔,只需要使用下面的方法就可以獲取到當(dāng)前時區(qū)
var timezone = await FlutterNativeTimezone.getLocalTimezone();
print(timezone);
打印的結(jié)果:
flutter: Asia/Shanghai
flutter_native_timezone 有個缺點是,這個時區(qū)的結(jié)果只有英文結(jié)果,如果是要中文結(jié)果的小伙伴,需要自己手動轉(zhuǎn)換為中文了。