为什么我不能在 datetime Flutter 项目中添加偏移时间?
Why can't I add offset hours in datetime Flutter project?
我现在尝试向我的日期时间对象添加偏移小时数,
但它没有显示实际时间的增加时间。
这是我在 android 工作室的 flutter 项目。
void getTime() async {
Response response = await
get('http://worldtimeapi.org/api/timezone/Asia/Karachi');
Map data = jsonDecode(response.body);
String datetime = data['datetime'];
String offset = data['utc_offset'].substring(1,3);
print(offset);
DateTime now = DateTime.parse(datetime);
now.add(Duration(hours: int.parse('offset')));
print(now);
}
@override
void initState() {
super.initState();
getTime();
}
这是我得到的结果:
Screenshot of the output
您的代码有两个问题:
- 您应该将
offset
传递给 int.parse 而不是 'offset'
add
是对 DateTime
对象的不可变操作。它不会更改 DataTime
对象,而是 returns 一个新对象。
试试这个:
DateTime dateTimeAfterOffset = DateTime.parse(datetime).add(
Duration(
hours: int.parse(offset),
),
);
```
我找到了解决方案。耶耶耶!
void getTime() async {
//Make the request
Response response = await get('http://worldtimeapi.org/api/timezone/Asia/Karachi');
Map data = jsonDecode(response.body);
print(data);
//Get properties from data
String datetime = data['datetime'];
String offset = data['utc_offset'].substring(1,3);
//print(datetime);
print(offset);
//create DateTime Object
DateTime now = DateTime.parse(datetime);
now = now.add(Duration(hours: int.parse(offset)));
print(now);
}
@override
void initState() {
super.initState();
getTime();
}
我现在尝试向我的日期时间对象添加偏移小时数, 但它没有显示实际时间的增加时间。 这是我在 android 工作室的 flutter 项目。
void getTime() async {
Response response = await
get('http://worldtimeapi.org/api/timezone/Asia/Karachi');
Map data = jsonDecode(response.body);
String datetime = data['datetime'];
String offset = data['utc_offset'].substring(1,3);
print(offset);
DateTime now = DateTime.parse(datetime);
now.add(Duration(hours: int.parse('offset')));
print(now);
}
@override
void initState() {
super.initState();
getTime();
}
这是我得到的结果: Screenshot of the output
您的代码有两个问题:
- 您应该将
offset
传递给 int.parse 而不是'offset'
add
是对DateTime
对象的不可变操作。它不会更改DataTime
对象,而是 returns 一个新对象。
试试这个:
DateTime dateTimeAfterOffset = DateTime.parse(datetime).add(
Duration(
hours: int.parse(offset),
),
);
```
我找到了解决方案。耶耶耶!
void getTime() async {
//Make the request
Response response = await get('http://worldtimeapi.org/api/timezone/Asia/Karachi');
Map data = jsonDecode(response.body);
print(data);
//Get properties from data
String datetime = data['datetime'];
String offset = data['utc_offset'].substring(1,3);
//print(datetime);
print(offset);
//create DateTime Object
DateTime now = DateTime.parse(datetime);
now = now.add(Duration(hours: int.parse(offset)));
print(now);
}
@override
void initState() {
super.initState();
getTime();
}