在設定用戶生日時,我得到一個比資料庫中存盤日期晚一天的日期。
例如
John Doe 的生日: 1997-12-25T00:00:00 03:00
Flutter 的 DateTime.parse() 日期: 1997-12-24
需要幫助,請!
uj5u.com熱心網友回復:
我最初的猜測是,當時沒有被無論是從或到您最初將其存盤在同一時區進行分析。該parse()功能可以利用可選的時區(如描述在這里),所以也許確認時區是在同一鏈條的每一個環節。
另一件要考慮的事情是夏令時,因為這可能會以某種方式或另一種方式改變時間。
有可能這些因素中的任何一個的偏移量足夠大,可以滾動到后一天或前一天。
要讓 Flutter 將時間決議為 UTC,請Z在末尾附加 a ,例如:
DateTime.parse(datetime 'Z'); // UTC time
對于任何其他時間,您需要指定時差,而不是時區,就像這樣;
DateTime.parse(datetime ' 02:00'); // 2 hour difference ahead of UTC time
您還用于.isUTC檢查日期是否被解釋為 UTC 并.toLocal()獲取與 UTC 日期等效的本地時區。
uj5u.com熱心網友回復:
使用本地時區中的 DateTime 值。
final datetimeParsed = DateTime.parse('1997-12-25T00:00:00 03:00').toLocal();
final DateFormat formatter = DateFormat('yyyy-MM-dd');
final String formatted = formatter.format(datetimeParsed);
print(formatted);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/330690.html
上一篇:無法在初始化程式中訪問實體成員“myString”。文本編輯控制器
下一篇:GetxController結構
