Saya menghadapi masalah aneh dengan preferensi bersama flutter, saya mencoba mengatur objek DateTime.Now() ke preferensi bersama seperti ini

    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
  }

Untuk menguji ketika saya membaca kunci tepat setelah pengaturan dari fungsi yang sama saya mendapatkan tanggal hasil yang diharapkan dikonversi ke string

17-06-2020 13:32:17.548524

Masalahnya adalah ketika saya mencoba membaca kunci dari fungsi lain seperti ini,

  void getStartTimeDataFromPrefs() async {
    prefs = await SharedPreferences.getInstance();
    print('${prefs.getString(_prefsStartTime)}');
  }

Ini memberi saya hasil ini

13:32:17

Adakah gagasan tentang bagaimana data preferensi berubah? Bagaimana tanggal diformat seperti DateFormat.jms()

Juga mencoba memahami mengapa kode yang sama berperilaku dalam dua cara berbeda dalam fungsi yang berbeda. Itu memiliki nilai yang benar ketika saya membacanya di fungsi pertama?

0
Na5ru 17 Juni 2020, 11:33

1 menjawab

Jawaban Terbaik

Coba ini

//Insert
prefs.setInt('yourKey', DateTime.now().millisecondsSinceEpoch);
//Get
DateTime dt = DateTime.fromMillisecondsSinceEpoch((prefs.getInt('yourKey')??DateTime.now().millisecondsSinceEpoch);
1
Naveen Avidi 17 Juni 2020, 08:54