Google工作表中的日期格式问题

时间:2017-03-09 00:22:13

标签: google-apps-script

我有一个谷歌电子表格,其中有一列logDate,列中的值如下所示

  1. ' 03/08/2017
  2. 2017年3月8日
  3. 使用google apps脚本将此数据导入MySQL表时

    ' 03/08/2017这个日期存储为03/08/2017

    2017年3月3日这个日期存储为2017年3月8日星期三00:00:00 GMT-0800(EST)

    所以我尝试使用下面的代码将logDate列更改为一致的日期格式。

      var ldcol = SpreadsheetApp.getActiveSheet().getRange("A2:A");
      ldcol.setNumberFormat("MM/dd/yyyy");
    

    此格式化的logDate列数据位于

    之下
    1. 03/08/2017
    2. 2017年3月8日
    3. 并且在表中logDate列数据如下所示" Wed Mar 08 2017 00:00:00 GMT-0800(EST)"。

      GS1 GS2

1 个答案:

答案 0 :(得分:0)

第一个(带单引号)是一个字符串,另一个是日期值。 JavaScript中的日期始终以完整形式表示,例如“Wed Mar 08 2017 00:00:00 GMT-0800(EST)”。

如果你想同时使用这两个对象,你可以将两者都转换为日期对象,也可以将两者都转换为字符串。

根据您的说法,我猜您更喜欢使用较短的字符串版本,因此您可以使用名为formatDate的Google特殊方法,它是这样的:

var ldcol = SpreadsheetApp.getActiveSheet().getRange("A2:A").getValues();//this returns an array of arrays with all col values
var ldcolTest = ldcol[0][0]; // pick first value to test it, implement a loop to check all values
var formatedDate = Utilities.formatDate(ldcolTest, Session.getScriptTimeZone(),"MM/dd/yyyy");
Logger.log("formatedDate = "+formatedDate);