我正在尝试通过Flutter HTTP Get方法从我的Google SpreadSheet获取日期和时间数据。但是问题是当我阅读它时,日期和时间被读取为不同的格式。例如,在Google表格中,仅写入“ 2020-11-27”。但是当我从Flutter读到它时,它读为``2020-11-27T00:00:00Z''。我尝试将数据强制转换为字符串,但现在得到的是“ 2020年1月13日星期一格林尼治标准时间+0900”。有没有人可以帮助我按原样阅读它?我的意思是字符串格式。
时间也一样。我在Google表格中只写了11:10,但是当我从Flutter读到它时,它说的是1899-12-30 11:42:08。我现在知道时间从哪里来...
请在下面找到我的代码并为我提供帮助。谢谢你。
Google Spread Sheet数据。
test 2020-01-13 11:10 2022-11-01 3:03
Google脚本代码
function doGet(request){
var data = [];
// Open Google Sheet using ID
var SpreadSheets = SpreadsheetApp.openById("ID");
// Get all values in active sheet
var Sheet = SpreadSheets.getSheetByName("Data");
var values = Sheet.getDataRange().getValues();
// Iterate values in descending order
for (var i = values.length - 1; i > 0; i--)
{
// Get each row
var row = values[i];
// Create object
var feedback = {};
// ↓ String Casting and Org assignment. Both are not okay.
feedback['DepartureDate'] = row[1].toString();
feedback['DepartureTime'] = row[2].toString();
feedback['ArrivalDate'] = row[3].toString();
feedback['ArrivalTime'] = row[4].toString();
//feedback['DepartureDate'] = row[1];
//feedback['DepartureTime'] = row[2];
//feedback['ArrivalDate'] = row[3];
//feedback['ArrivalTime'] = row[4];
// Push each row object in data
data.push(feedback);
}
// Return result
return ContentService
.createTextOutput(JSON.stringify(data))
.setMimeType(ContentService.MimeType.JSON);
}
Flutter HTTP获取代码
Future<List<DriveRecordForm>> getData_Easy() async {
final response = await http.get(URL);
if (response.statusCode == 200) {
var temp = convert.jsonDecode(response.body); // I checked response.body and the date and time is diffent from my expectation. (Expecation: 2020-01-13 / Result: Mon Jan 13 2020 00:00:00 GMT+0900...
谢谢你。
使用时getValues()
,Google会解释单元格的内容并为你提供它认为正确的类型。
这些值的类型可以为Number,Boolean,Date或String,具体取决于单元格的值。
使用getDisplayValues()
,如果你想,因为他们出现在电子表格(如字符串),以获得准确值。