5

我在Google App电子表格中以'dd/mm/yyyy'格式和时间列'HH:MM AM/PM'格式显示日期列。在应用程序脚本中,我想将这两个值作为日期时间加入。我怎样才能做到这一点?如何在Google Apps Spreadsheet脚本中将日期和时间合并为日期时间?

示例日期:13/12/2010,时间:下午4:30 然后,我希望将'13/12/2010 4:30 PM'等组合值作为日期时间对象。

我试图解析日期和时间分别使用得到年,getDay JS功能。并建立使用

new Date(year, month, day, hours, minutes) 

的新日期,但由于某些原因,时间“4:30”被显示为一个完整的怪异日期像1899年11月30日10:30。我可以准确地提取年,日,月,但不是小时和分钟。

回答

3

伊夫得到这个回答this谷歌Apps的论坛主题。 “

”首先,日期和时间(格式除外)没有区别,它们都是Date对象。现在问题出现。 电子表格中日期/时间值的数字是因为“时间”实际上是数字的小数部分,所以如果在电子表格中输入0(零),然后选择日期时间格式,则会看到时间是“12/30/1899 0:00:00“,即在不同的电子表格中,使用不同的时区配置,时期可能会改变,如果您在两个电子表格中使用相同的数值(例如使用ImportRange)不同的行为对我来说很奇怪,但并不总是这样,但谷歌似乎认为这对用户更好,因为如果更改电子表格时区设置,日期将会不能直观地改变,例如如果您在电子表格中输入“1/1/10 14:00”,然后将时区更改为其他任何时区,则日期/时间不会更改。在新的时区仍然是14:00。

现在,GAS时代是 “1/1/1970 0:00:00 GMT + 0”,现在事情的时区。所以,这个时代是不同的,也很可能是时区。这使得GAS和电子表格之间的运行日期一塌糊涂。 要测试GAS纪元,请执行range.setValue(new Date(0)); “

相关问题