MENU

【Flutter】DateTime型の値をSharedPreferencesに保存する方法

記事内に商品プロモーションが含まれる場合があります

SharedPreferencesに保存できる型は限定的なので、DateTime型の値を保存するには型を変換して保存する必要があります。

このページではString型に変換して保存する方法、保存した値を取り出す方法を紹介します

目次

保存処理:DateTime型を文字列に変換して保存する

// SharedPreferencesにDateTimeを保存する関数
Future<void> saveDateTimeToSharedPreferences(DateTime value) async {
  final prefs = await SharedPreferences.getInstance();
  prefs.setString('key', value.toIso8601String());
}

このコードでは、DateTime型の値をISO 8601形式の文字列に変換して保存しています。

取得処理:保存した文字列(日付)を取り出してDateTime型に戻す

// SharedPreferencesからDateTimeを読み込む関数
Future<DateTime> loadDateTimeFromSharedPreferences() async {
  final SharedPreferences prefs = await SharedPreferences.getInstance();
  final dateString = prefs.getString('key');
  return dateString != null ? DateTime.parse(dateString).toLocal() : DateTime.now();
}

このコードでは、保存した日付文字列を取得しDateTime.parseを使用してDateTime型に戻しています。

もし保存された値が存在しない場合は、現在の日時を返すようにしています。

使用例

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

// SharedPreferencesにDateTimeを保存する関数
Future<void> saveDateTimeToSharedPreferences(DateTime value) async {
  final prefs = await SharedPreferences.getInstance();
  prefs.setString('key', value.toIso8601String());
}

// SharedPreferencesからDateTimeを読み込む関数
Future<DateTime> loadDateTimeFromSharedPreferences() async {
  final SharedPreferences prefs = await SharedPreferences.getInstance();
  final dateString = prefs.getString('key');
  return dateString != null ? DateTime.parse(dateString).toLocal() : DateTime.now();
}

// 使用例
void main() async {
  await saveDateTimeToSharedPreferences(DateTime.now());

  DateTime loadedDateTime = await loadDateTimeFromSharedPreferences();
  print(loadedDateTime); // Output: current date and time
}
Share

Comment

コメントする

目次