flutter - 未处理的异常:NoSuchMethodError:类'String'没有实例方法'subString'
问题描述
我无法找到这个问题的解决方案,我的错误是字符串没有包含子字符串的实例。我想打印变量“现在”,但它显示了这个错误。我尝试了很多与这个问题匹配的解决方案,但它没有帮助我。请帮助我错误:E/flutter(6091):[错误:flutter/ lib/ui/ui_dart_state.cc(186)] 未处理的异常:NoSuchMethodError:类'String'没有实例方法'SubString'。E/flutter (6091): 接收者: "+01:00" E/flutter (6091): 尝试调用: subString(1, 3) E/flutter (6091): #0 Object.noSuchMethod (dart:core-patch/ object_patch.dart:54:5) E/flutter (6091): #1 _LoadingState.getTime (package:world_time/pages/loading.dart:22:40) E/flutter (6091):
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'dart:convert';
import 'dart:core';
class Loading extends StatefulWidget {
@override
_LoadingState createState() => _LoadingState();
}
class _LoadingState extends State<Loading> {
void getTime() async {
//make the request
Response response = await get(Uri.parse('https://worldtimeapi.org/api/timezone/Europe/London'));
Map data =jsonDecode(response.body);
//print(data);
//get property from data
String datetime =data['datetime'];
String offset = data['utc_offset'].subString(1,3);
//print(datetime);
//print(offset);
//create a datetime object
DateTime now =DateTime.parse(datetime);
now =now.add(Duration(hours: int.parse(offset)));
print(now);
}
@override
void initState() {
super.initState();
getTime();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Text('loading screen'),
);
}
}
解决方案
尝试将其更改为:
String offset = data['utc_offset'].toString().substring(1,3);
推荐阅读
- spring-data-rest - Spring DB 实体:构造函数、equals 和 hashcode
- javascript - 通过迭代动态创建的表单行和输入进行减法
- redhat-datavirt - teiid有没有md5之类的hash函数?
- python - 比较两个数据框的列而不合并数据框
- c# - 如何在.net的数据表列中放置空格和特殊字符
- r - 在 ggplot2 中使用交互式标签制作 ggplot Choropleth 地图
- salesforce - Apex 测试类 - 简单插入
- c - fread 不会更改函数中的指针值(使用 feof 导致无限循环)-C
- python - 在单独的文件中记录 SQLAlchemy
- azure - 创建后如何在 Azure 数据工厂中启用诊断