dateTime[电子表格]上的随机TMZ
我有一个“HH:MM:SS”格式的开始时间。在我的电子表格中,用户以这种格式输入,如上午9点的“09:00:00”。当我在我的脚本中得到这个单元格的值时,我得到了这个古怪的东西: “12月30日星期六09:00:00 GMT+00:09 1899” 似乎我有一个随机的日期,1899年12月30日,我并不在乎,但也有“GMT+00:09”,这让我更烦恼。我的电子表格和脚本是“GMT+01:00 Paris”,所以当我在其他地方插入这些数据时,我会得到09:50 GMT+01:00。。。还不到51分钟,就像我预料的那样 你知道它是怎么发生的,为什么发生的吗 我现在使用的修正是以我的“HH:MM:SS”格式或“HH:MM”显示时间,但将值设置为“05/01/2018 09:00:00”,因此它被视为我时区中的完整日期时间。我只想在这里指定时间dateTime[电子表格]上的随机TMZ,datetime,google-apps-script,google-sheets,Datetime,Google Apps Script,Google Sheets,我有一个“HH:MM:SS”格式的开始时间。在我的电子表格中,用户以这种格式输入,如上午9点的“09:00:00”。当我在我的脚本中得到这个单元格的值时,我得到了这个古怪的东西: “12月30日星期六09:00:00 GMT+00:09 1899” 似乎我有一个随机的日期,1899年12月30日,我并不在乎,但也有“GMT+00:09”,这让我更烦恼。我的电子表格和脚本是“GMT+01:00 Paris”,所以当我在其他地方插入这些数据时,我会得到09:50 GMT+01:00。。。还不到51分
谢谢你的回答,这个答案怎么样?这个答案假设了以下条件
- 单元格“A1”的时间格式为
HH:MM:SS
- 单元格“A1”的值为
09:00:00
getValue()
检索到“A1”的值时,该值为Sat Dec 30 09:00:00 GMT+09:00 1899
。(很抱歉,“GMT+09:00”是因为时区。我的时区是亚洲/东京。)因为电子表格使用序列号作为日期/时间。序列号的开头是12/30/1899 00:00:00
。在这种情况下,由于没有日期信息,Sat Dec 30 09:00:00 GMT+09:00 1899
被检索为从一开始就经过09:00:00
的值
如果要从单元格“A1”检索09:00:00
,请使用getDisplayValue()
而不是getValue()
。通过此操作,您可以检索09:00:00
在第二种情况下:
我认为这是更好的用法<代码>2018年05月01日09:00:00以HH:MM:SS
格式导入单元格。这样,该值同时具有日期和时间信息。因此,getValue()
和getDisplayValue()
检索的单元格值分别为Fri Jan 05 09:00:00 GMT+09:00 2018
和09:00:00
样本:
如果使用getValue()
如果使用getDisplayValue()
参考资料:
如果我误解了你的问题,很抱歉。一个快速解决方案是将单元格中的数字格式设置为纯文本。出于某种原因,我的一张电子表格总是在格式为“time”或“date”时加上20分钟。甚至无法在其他电子表格上重现该问题。我甚至无法确定距离我20分钟的时区。这似乎是同样的问题,9分钟的偏移量当然是找不到的!纯文本只是另一种快速修复方法,我找到了目前最合适的修复方法,但它并不是我真正想要的。。。无论如何感谢您的输入=)好吧,getDisplayValue()在这种情况下可以工作,但可能会在其他地方增加问题。这并不能解释9分钟的偏移量是从哪里来的。。。正如我所说,我已经有了一种快速修复方法,效果很好,但并不完全令人满意。无论如何,谢谢你的投入=)@Tanaike,1899年的部分是清楚的。奇怪的事情发生在
GMT+00:09
部分。这很奇怪,我有+01:44
,无法解释这一点。如果你知道这个案子,请发邮件,这是什么问题吗?@Josselin PEREZ我很抱歉给你带来不便。我误解了你的问题。我真的很抱歉。我不知道这是否是一个正确的答案。所以请把这看作是几个答案之一。我原以为偏移量是由每个时区引起的。具体地说,这是由于创建了zoneinfo数据库(称为tz数据库)。我认为,从这个数据库,偏移量被创建。
SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
SpreadsheetApp.getActiveSheet().getRange("A1").getDisplayValue();