颤振/飞镖共享首选项日期时间正在转换



>我面临着一个奇怪的问题,即颤振共享首选项, 我正在尝试将 DateTime.Now(( 对象设置为像这样的共享首选项

void setStartTimeDataToPrefs() async {
prefs = await SharedPreferences.getInstance();
prefs.setString(_prefsStartTime, DateTime.now().toString());
print('Getting soon after setting in same function ${prefs.getString(_prefsStartTime)}');
//Here im getting the value correct as 2020-06-17 11:32:17.548524
}

为了测试我从同一函数设置后立即读取密钥时,我将预期结果日期转换为字符串

2020-06-17 13:32:17.548524

问题是当我尝试从另一个这样的函数中读取密钥时,

void getStartTimeDataFromPrefs() async {
prefs = await SharedPreferences.getInstance();
print('${prefs.getString(_prefsStartTime)}');
}

它给了我这个结果

下午1:32:17

知道首选项数据是如何变化的吗?日期是如何像 DateFormat.jms(( 一样格式化

的还试图理解为什么相同的代码在不同的函数中以两种不同的方式运行。当我在第一个函数中读取它时,它的值是正确的?

试试这个

//Insert
prefs.setInt('yourKey', DateTime.now().millisecondsSinceEpoch);
//Get
DateTime dt = DateTime.fromMillisecondsSinceEpoch((prefs.getInt('yourKey')??DateTime.now().millisecondsSinceEpoch);

最新更新