【问题标题】:Datetime with timezone in Google Sheets?Google表格中带有时区的日期时间?
【发布时间】:2016-09-27 08:32:51
【问题描述】:

我想计算 Google 表格中不同时区的日期时间之间的时差。

如果我将两个字段格式化为“日期时间”,另一个设置为“持续时间”,我可以使用差异运算符成功计算同一时区内的差异。

示例: A1= 1/10/2016 10:10:00,B2 = 13/11/2016 15:35:00 C2 = =B2-B1

但是,当我将时区添加到日期时间时,例如A1=1/10/2016 10:10:00 GMT+1:00:00,C2 显示#VALUE

我知道我可以自己计算时区差异并将其从持续时间中减去,但有没有办法通过直接在日期时间字段中指定时区来自动执行?

【问题讨论】:

  • 表格日期并没有真正考虑不同的时区,这完全取决于并且基于电子表格设置中设置的时区。

标签: datetime google-sheets timezone


【解决方案1】:

简答

使用custom function

说明

Google 表格公式和日期格式不包含时区处理程序,因此如果您包含时区符号,则该值将被视为字符串而不是日期时间。

另一种方法是使用 Google Apps 脚本/JavaScript 编写一个函数,将包含时区的日期时间字符串转换为 Google 表格日期。

示例

/**
 * Converts a string to a date-time value
 *
 * @param {Thu Apr 23 2015 00:00:00 GMT+0200} dateTimeString
 * @customfunction
 */
function stringToDateTime(dateTimeString) {
  var output = new Date (dateTimeString);
  if(!isNaN(output.valueOf())) {
    return output;
  } else {
    throw new Error('Not a valid date-time');
  }   
}

A1 = 1/10/2016 10:10:00 GMT+0100

注意:日期时间格式必须被JavaScript Date Object支持

=B1-stringToDateTime(A1)

参考文献

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 2020-12-08
    • 2021-08-02
    • 2020-03-16
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多