首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Utilities.formatDate日期设置不正确

Utilities.formatDate日期设置不正确
EN

Stack Overflow用户
提问于 2014-04-04 10:39:10
回答 2查看 8.6K关注 0票数 1

我有一个日期存储如下:

代码语言:javascript
复制
existingDate = Wed Apr 30 2014 00:00:00 GMT+0100 (BST)

当我使用Utilities.formatDate格式化日期时,日期将更改为前一天。

代码语言:javascript
复制
var formattedDate = Utilities.formatDate(new Date(existingDate), "GMT", "dd/MM/yyyy");

然后将格式化日期设置为29/04/2014,而不是 30/04/2014

有没有其他人见过这种行为。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 11:39:50

Utilities.formatDate似乎工作得很好。

您有4月30日午夜在格林尼治标准时间-1,但你告诉它格式化这个日期在一个不同的时区GMT,或更明确的GMT-0。预期的结果确实是4月29日23h。

Utilities.formatDate中的第二个参数必须是您想要的时区。

票数 2
EN

Stack Overflow用户

发布于 2017-01-27 06:55:17

这个google脚本还有其他一些问题。如果我想要AEST时区,但只有1/27/2017的日期,那么Utilities.formatDate("1/27/2017“、"AEST”、“yyyy dd”)将返回一个值为2017-01-26,这比它应该的日期早一天!但是,如果我有时间使用它,比如"1/27/2017 12:00:00“,那么它返回正确的一天。但是,如果我使用"GMT+11“作为时区,即使没有时间结束,如果返回正确的一天。

例子-

Logger.log('Example 1='+Utilities.formatDate(new Date("1/27/2017"),"AEST","yyyy-MM-dd")); Logger.log('Example 2='+Utilities.formatDate(new Date("1/27/2017 12:00:00"),"AEST","yyyy-MM-dd")); Logger.log('Example 3='+Utilities.formatDate(new Date("1/27/2017"),"GMT+11","yyyy-MM-dd"));

产出-

例1=2017-01-26

例2=2017-01-27

案例3=2017-01-27

从没有时间的电子表格单元格中读取日期的解决方法是添加时间,并使用诸如"AEST“或类似的时区,如下所示-

代码语言:javascript
复制
var displayDate = sheet.getRange(a1Notation).getDisplayValue();  // Not .getValue();
Logger.log(Utilities.formatDate(new Date(displayDate + " 12:00:00"), "AEST", "yyyy-MM-dd"));

但是,"GMT+11“会更容易一些,因为您不需要添加时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22860477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档