Flutter 颤振/飞镖共享首选项日期时间转换
我正面临着一个奇怪的问题, 我正在尝试将DateTime.Now()对象设置为如下所示的共享首选项Flutter 颤振/飞镖共享首选项日期时间转换,flutter,dart,sharedpreferences,Flutter,Dart,Sharedpreferences,我正面临着一个奇怪的问题, 我正在尝试将DateTime.Now()对象设置为如下所示的共享首选项 void setStartTimeDataToPrefs() async { prefs = await SharedPreferences.getInstance(); prefs.setString(_prefsStartTime, DateTime.now().toString()); print('Getting soon after setting i
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);
我试过你的代码和set方法,get方法给我同样的结果:2020-06-17 11:00:27.533554对我来说可能是本地的,只是想看看以前是否有人遇到过这个问题。谢谢你的回复,我只是这样解决的。我发布了这个问题,看看以前是否有人遇到过这个问题。但这个事件让我质疑为什么共享首选项不支持DateTime的一个以上的数据结构。