在我的本地機器上,這個日期 DateTime(2021, 10, 27, 00, 00, 00)是 GMT 4
當我將此代碼推送到我們的遠程服務器時,使用 GMT 2 解釋相同的日期,因為遠程服務器位于 GMT 2 時區,因此代碼的行為不同。
我知道我可以使用DateTime.utc建構式,但我希望手動輸入此日期并始終遵循 GMT 4。
所以解決方案是將遠程服務器的本地也更改為 GMT 4。但是如何僅在飛鏢背景關系中做到這一點?(不是系統范圍的)
uj5u.com熱心網友回復:
不幸的是DateTime,本機不支持時區,正如jamesdlin所建議的那樣,您將不得不使用 3rd 方軟體包,例如timezone。
如何使用
第 1 步:安裝軟體包
dependencies:
timezone: any
第 2 步:初始化庫
main.dart
import 'package:timezone/data/latest.dart' as tz;
void main() {
WidgetsFlutterBinding.ensureInitialized();
tz.initializeTimeZones();
runApp(MyApp());
}
注意:建議在匯入此包時添加as tz。
第 3 步:定義您想要的時區
import 'package:timezone/standalone.dart' as tz;
final detroit = tz.getLocation('America/Detroit');
第 4 步:使用TZDateTime類
import 'package:timezone/standalone.dart' as tz;
final localizedDt = tz.TZDateTime.from(DateTime.now(), detroit);
您可以TZDateTime根據需要使用以下建構式:
TZDateTime(...)TZDateTime.utc(...)TZDateTime.local(...)TZDateTime.now(...)TZDateTime.fromMillisecondsSinceEpoch(...)TZDateTime.fromMicrosecondsSinceEpoch(...)TZDateTime.from(...)
您還可以使用 直接從格式化字串中決議您的日期TZDateTime.parse(Location location, String formattedString)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369078.html
上一篇:在顫振中的小部件構建中使用變數
