Google电子表格到Google日历格式日期 [英] Google spreadsheet to Google Calendar format date

查看:35
本文介绍了Google电子表格到Google日历格式日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Google脚本中使用createEvent。

我无法添加事件,因为脚本未正确读取电子表格中我的日期列的格式。

我需要格式为"2012年8月10日08:00:00"。但是,当我检查由电子表格设置的日期、时间变量是什么时,格式包括星期几,这是完全错误的。我在电子表格中使用了Format选项,但它似乎只是一个视图控件,并不影响它的实际存储方式。

如何设置电子表格的格式以匹配createEvent函数所需的格式?

谢谢

推荐答案

CalendarApp.createEvent()要求startTimeendTime参数都有Date对象。因此,电子表格中日期的文本格式无关紧要--只要引用的单元格包含日期

var s = SpreadsheetApp.getActiveSheet();
var eventDate = s.getRange("B17").getValue(); // August 10, 2012 08:00:00, a date

var eventTitle = "Example";
var eventDetails = "Details";

//Get the calendar
var cal = CalendarApp.getCalendarsByName('Calendar-Name')[0];//Change the calendar name
var eventStartTime = eventDate;
//End time is calculated by adding an hour in the event start time 
var eventEndTime = new Date(eventDate.valueOf()+60*60*1000);
//Create the events
cal.createEvent(eventTitle, eventStartTime,eventEndTime ,{description:eventDetails});

如果引用的单元格包含纯文本,则格式必须是javascript Date对象构造函数可以理解的格式。事实证明,您所显示的格式是可以接受的,尽管由于没有明确说明时区,它将默认为您的电子表格的区域设置。以下是您可以对上面的示例进行的一个更改:

// You could optionally generate a date object from the string representation
// HOWEVER createEvent() is smart enough to handle the string itself
var eventStartTime = new Date(eventDate);

如果你想做实验,看看Waqar Ahmad关于这个主题的tutorial。我可以通过粘贴您的示例日期字符串(2012年8月10日08:00:00)来创建事件。本教程中的应用程序脚本代码盲目地从日历弹出窗口中选择的日期或键入的文本字符串创建日期对象。[注意教程代码中有一个拼写错误,evenDate应为eventDate。]

这篇关于Google电子表格到Google日历格式日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆