【问题标题】:How to Get Date and Time String from Google Spreadsheet as String?如何从 Google 电子表格中获取日期和时间字符串作为字符串?
【发布时间】:2020-11-28 16:33:30
【问题描述】:

我正在尝试通过 Flutter HTTP Get 方法从我的 Google 电子表格中获取日期和时间数据。 但是问题是当我阅读它时,日期和时间被读取为不同的格式。 例如, 在 Google Sheet 中,只写了“2020-11-27”。但是当我从 Flutter 中读取它时,它显示为“2020-11-27T00:00:00Z”。 我尝试将数据强制转换为字符串,但现在我得到了“2020 年 1 月 13 日星期一 00:00:00 GMT+0900”。 有没有人可以帮助我按原样阅读它?我的意思是字符串格式。

时间也是一样的。 我在 Google Sheet 中只写了 11:10,但是当我从 Flutter 中读取时,它显示为 1899-12-30 11:42:08。 我现在知道时间从哪里来...

请在下面找到我的代码并帮助我。 谢谢。

Google 电子表格数据。

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...

谢谢。

【问题讨论】:

    标签: json flutter dart google-apps-script google-sheets


    【解决方案1】:

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

    值可能是数字、布尔值、日期或字符串类型,具体取决于单元格的值。

    如果您想获得与电子表格中显示的完全相同的值(作为字符串),请使用 getDisplayValues()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2017-06-04
      • 2013-04-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多