[英]How to convert String to Time in Hour, Minute, Second as integer in flutter?
我正在制作一個應用程序,我想借助 flutter_local_notification package 向用戶發送通知。 我想每天在某個時間向用戶發送通知,為此,我使用以下 function:
Future<void> showDailyAtTime() async {
////////// <<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>
var time = Time(16, 02, 00); ////// line 1 <---------- (Hour, Minute, Second)
////////// <<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>
var androidChannelSpecifics = AndroidNotificationDetails(
'CHANNEL_ID 2',
'CHANNEL_NAME 2',
"CHANNEL_DESCRIPTION 2",
importance: Importance.max,
priority: Priority.high,
);
var iosChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics =
NotificationDetails(android: androidChannelSpecifics, iOS: iosChannelSpecifics);
await flutterLocalNotificationsPlugin.showDailyAtTime(
0,
'Test Title at ${time.hour}:${time.minute}.${time.second}',
'Test Body', //null
time,
platformChannelSpecifics,
payload: 'Test Payload',
);
}
我使用這樣的共享首選項存儲時間:
ttime = '${time.hour} : ${time.minute} : ${time.second}';
然后我像這樣設置它:
Future<void> _setNotifyTime() async{
final prefs = await SharedPreferences.getInstance();
final savedNotifyTime = await _getStringFromSharedPrefs();
await prefs.setString('notificationTime', ttime);
//print("this $savedNotifyTime");
return savedNotifyTime;
}
然后我借助以下代碼從共享偏好中獲取信息:
Future<String> _getStringFromSharedPrefs() async{
final prefs = await SharedPreferences.getInstance();
notifyTime = prefs.getString('notificationTime');
return notifyTime;
}
如何將此保存的時間轉換為所需的格式(如第 1 行所示),值是 int? 我該怎么做? 請幫我。
感謝您提前回復
var splited = notifyTime.split(':');
int hour = int.parse(splited[0]);
int minute = int.parse(splited[1]);
int second = int.parse(splited[2]);
您可以像Jorge Vieira的回答那樣進行模式拆分,或者您自己保存解析邏輯並將其存儲為整數。
對於設置,您可以使用 setInt()
prefs.setInt("H",time.hours);
prefs.setInt("m",time.minutes);
prefs.setInt("s",time.seconds);
為了得到它,你可以使用 getInt()
int hours = prefs.getInt("H");
int mins = prefs.getInt("m");
int secs = prefs.getInt("s");
然后從您的方法中返回時間 object
return Time(hours,mins,secs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.