Flutter/Dart Shared Preferences DateTime 被转换

标签 flutter dart sharedpreferences

我面临一个关于 flutter 共享首选项的奇怪问题,
我正在尝试将 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
  }

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

2020-06-17 13:32:17.548524



问题是当我尝试从另一个这样的函数中读取 key 时,
  void getStartTimeDataFromPrefs() async {
    prefs = await SharedPreferences.getInstance();
    print('${prefs.getString(_prefsStartTime)}');
  }

它给了我这个结果

1:32:17 PM



知道偏好数据是如何变化的吗?日期如何像 DateFormat.jms() 一样被格式化

还试图理解为什么相同的代码在不同的功能中以两种不同的方式表现。当我在第一个函数中读取它时它具有正确的值?

最佳答案

试试这个

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

关于Flutter/Dart Shared Preferences DateTime 被转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62424753/

相关文章:

layout - flutter 中从右到左(RTL)

flutter - flutter :仅在两次点击按钮后更新文本

dart - Dart 3月30日

java - 共享首选项不保存或加载数据

android - onpause android中使用SharedPreferences存储数据的效果

flutter - 底部导航栏圆角

android - Android 上的 Flutter Cloud Firestore 崩溃 - 空对象引用上的 Mutable Document.getKey()

android - Flutter:在 ListView Builder 中使用英雄动画

function - Dart Flutter:函数未执行

android - 使用 SharedPreference 保存字符串数组