有没有任何全局时间日期格式可以被Google Sheets等解析?

问题描述 投票:0回答:1

有没有任何全局时间戳格式可以被大多数主要电子表格软件自动解析和理解? 但尤其是Google Sheets。

例如,考虑时间戳 "2020-05-08T02:53:03+00:00"。 如果我尝试将此粘贴到电子表格中,作为。

1) "2020-05-08T02:53:03+00:00" : not parsed by any major spreadsheet software
2) "2020-05-08T02:53:03Z"      : not parsed by any major spreadsheet software
3) "20200508T025303Z"          : not parsed by any major spreadsheet software
4) "2020-05-08 02:53:03 GMT"   : not parsed by any major spreadsheet software
5) "2020-05-08 02:53:03"       : parses; but only correct if user is in GMT/UTC

请注意,我不是用户,我不能自动检测用户的时区,我也不能要求他们重新配置他们的电子表格软件到一个特定的时区。我所能做的就是给他们一个类似于上述的字符串--他们希望把这个字符串粘贴到他们的电子表格中,然后就 "可以用了"。 世界上的任何地方。

格式必须是人类可读的(没有纪元时间或Excel序列)。 用户端脚本只有在爷爷能处理的情况下才可以接受。爷爷上周刚学会了如何复制粘贴(至今还没有原谅你)。他用的是Excel,如果你说 "Google Sheets",他会朝你扔鞋。 或者 "脚本"。 或 "菜单"。或 "奥巴马"。

详情。 我正在写一个脚本,它可以向用户展示一个充满时间戳的表格(通过网络,电子邮件等)。 有些用户会把这个表格复制粘贴到他们的电子表格软件中,他们希望这个软件能够自动正确地解析时间戳,以便将它们转换为用户的本地时区,可以用于电子表格的数学等。 当然,这需要我给他们一个格式,其中的时区要么是不必要的,要么是明确规定的。 像大多数编码者一样,我可以很容易地将时间戳转换为任何字符串格式。

叨叨。 标准的ISO 8601格式(上面的例子1-3)是专门为此目的而创建的。 所以我相当震惊地发现,连Google Sheets中的datevalue()函数都不能解析它们。 我的意思是,Google不能解析ISO 8601? 谷歌? 这太不可思议了,我需要独立确认。 因为我一定是遗漏了什么。 一定有 一些 全局时间戳格式,谷歌可以解析。

我的意思是,来吧。 现在是2020年 This is 2020. 而它的谷歌。

parsing google-sheets timestamp iso8601
1个回答
0
投票

使用谷歌应用脚本,你可以解析日期与 formatDate(date, timeZone, format) 像下面这样。

function myFunction() {
  var date = new Date('2020-05-08T02:53:03+00:00');

  var formattedDate = Utilities.formatDate(date, "GMT", "yyyy-MM-dd HH:mm:ss");

  Logger.log(formattedDate);
}

你还可以通过以下方式获取用户的时区 getScriptTimeZone().

有了这个脚本,你可以让用户在Sheet上使用这个脚本,并通过onOpen()或onEdit()触发,将所有的日期重新格式化为他们的区域。

© www.soinside.com 2019 - 2024. All rights reserved.