1

アプリスクリプトとグーグルカレンダーで私は同じ名前のイベントを取得します:

function authorize() {
  var oauthConfig = UrlFetchApp.addOAuthService("calendar");
  var scope = "https://www.googleapis.com/auth/calendar";
  oauthConfig.setConsumerKey("anonymous");
  oauthConfig.setConsumerSecret("anonymous");
  oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");    
  oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");  
}

function beginEnd(calId, eventName){
  authorize();
  var key = "...";
  var query = encodeURIComponent(eventName); 
  calId = encodeURIComponent(calId);
  var params = {
    method: "get",
    oAuthServiceName: "calendar",
    oAuthUseToken: "always",
  };
  var url = "https://www.googleapis.com/calendar/v3/calendars/"+
    calId+"/events?q=" + query + "&key=" + key;
  var request = UrlFetchApp.fetch(url, params);
  var response = Utilities.jsonParse(request.getContentText());
  var items = response.items;
  for ( i = 0 ; i < items.length ; i++){
    var start = (items[i].start.dateTime);
    var end =  (items[i].end.dateTime);
    Logger.log( [start,end]);
  } 
}

しかし、開始を新しい日付に変換しようとすると、次のようになります。

var start = (items[i].start.dateTime);
Logger.log(start);
Logger.log( new Date(start) );

私は得る

2013-01-21T15:00:00-03:00
Wed Dec 31 16:00:00 PST 1969

なぜ ?

4

1 に答える 1

3

日付の定義はハイフンが好きではないようです...

より良い解決策が見つかると確信している場合でも、このように機能します(私は正規表現の専門家ではありません;-)

Logger.log(new Date('2013-01-21T15:00:00-03:00'.replace(/-/g,'/').replace(/[A-Z]/,' ').substr(0,19)))
于 2013-01-31T12:43:32.680 に答える