Flutter/Dart 共享首选项日期时间正在转换

Flutter/Dart Shared Preferences DateTime getting converted

我遇到了 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
  }

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

2020-06-17 13:32:17.548524

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

  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);