当前位置: 首页 > 知识库问答 >
问题:

Flatter/Dart共享首选项日期时间转换

和光启
2023-03-14

我遇到了一个奇怪的问题,我正在尝试设置一个日期时间。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()类似

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

共有1个答案

公孙宇
2023-03-14

试试这个

//Insert
prefs.setInt('yourKey', DateTime.now().millisecondsSinceEpoch);
//Get
DateTime dt = DateTime.fromMillisecondsSinceEpoch((prefs.getInt('yourKey')??DateTime.now().millisecondsSinceEpoch);
 类似资料:
  • 对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?

  • 非常感谢您的光临,我正在为学校开发一个应用程序,我遇到了另一个问题。该应用程序的主要思想是跟踪您的卡路里,我希望它能节省卡路里,所以当应用程序关闭时,它仍然会记住他们。我已经忙了一段时间了,现在尝试使用SavedPreferences,但我总是出现错误。我希望有人能帮我。 } 我可能做了很多明显的愚蠢的事情,但我真的弄不明白。 多谢!

  • 更新崩溃日志:

  • 当我发送FCM消息且应用程序处于后台时,我想清除共享首选项。在方法中,我正在调用一个方法来清除它们。 我得到以下错误: 未处理的异常:MissingPluginException(在channel plugins.flatter.io/shared_首选项上找不到方法getAll的实现)

  • 问题内容: 我在这个.java文件中有一个SharedPreference;在底部,您可以看到我将值保存到SharedPreferences GB_PREFERENCES_BENCH和GB_PREFERENCES_FLIES。如何在其他活动中使用这些值?请参阅第二个代码示例以了解如何使用它。 这是我要使用的方式;(特别是在on create方法中,将TextView的文本设置为SharePrefe

  • 错误日志如下: 我正在使用我的应用程序中的方法: