flutter - Flutter/Dart Shared Preferences DateTime 被转换
问题描述
我在颤动共享首选项方面遇到了一个奇怪的问题,我正在尝试将 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);
推荐阅读
- spring-boot - Spring Kafka - 消费者:未收到消息
- r - 午夜后时间的递增日期
- javascript - 如何将日期数组传递给 react-day-picker 中的 selectedDays?
- html - ImgKit 将 html 文件转换为 jpg 文件的时间太长(3 分钟)
- python - 如何在 pymongo 的另一个查询结果中排除一个查询结果?
- reactjs - 在 React 中,我可以使用 history.goBack() 检查用户将去哪里
- azure - ARM 模板将数组拆分为更精细的控件
- python - 使用请求模块通过 Python 在 json 中打印 Twitter 句柄的方法?
- c# - 不使用 INotifyPropertyChanged 或 DependencyProperty 的 WPF 最简单的数据绑定有什么问题
- html - 无论哪个元素调用动画,如何使 CSS 动画仅对 ONE 元素生效