Warm tip: This article is reproduced from serverfault.com, please click

json-如何以字符串形式从Google Spreadsheet获取日期和时间字符串?

(json - How to Get Date and Time String from Google Spreadsheet as String?)

发布于 2020-11-28 16:33:30

我正在尝试通过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...

谢谢你。

Questioner
chan hong Park
Viewed
11
Diego 2020-11-29 00:37:18

使用时getValues(),Google会解释单元格的内容并为你提供它认为正确的类型。

这些值的类型可以为Number,Boolean,Date或String,具体取决于单元格的值。

使用getDisplayValues(),如果你想,因为他们出现在电子表格(如字符串),以获得准确值。