Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dateTime[电子表格]上的随机TMZ_Datetime_Google Apps Script_Google Sheets - Fatal编程技术网

dateTime[电子表格]上的随机TMZ

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分

我有一个“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”,因此它被视为我时区中的完整日期时间。我只想在这里指定时间


谢谢你的回答,这个答案怎么样?这个答案假设了以下条件

  • 单元格“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();