javascript - 将日期字符串转换为 YYYY-MM-DDTHH 时遇到问题 :MM:SS-HH:MM format

标签 javascript date google-apps-script

我的开始日期如下所示:

var startDate = "Mon Jun 30 2014 00:00:00 GMT-0400 (EDT)";

我正在尝试将其格式化为:

var endDate = "2014-06-30T00:00:00-04:00";

我已经使用 toISOString() 方法将其正确半格式化:

var formattedDate = new Date(startDate);
formattedDate = formattedDate.toISOString();

将其格式化为“2014-06-30T04:00:00.000Z”。这接近我需要的,但我想知道是否有内置方法将其格式化为“-04:00”格式?或者我是否需要将字符串分成几部分并以正确的格式将其修复在一起?

此外,我正在使用 Google Apps 脚本(即 ES5),并尽可能避免使用 jQuery。

最佳答案

Google Apps 脚本 (GAS) 有一个内置的实用方法,您可以利用它来设置日期格式:

Utilities.formatDate()

它基于Java的SimpleDateFormat类。

要格式化日期以满足您的要求,以下内容就足够了:

var date = new Date("Mon Jun 30 2014 00:00:00 GMT-0400 (EDT)");

var formattedDate = Utilities.formatDate(
        date, 
        Session.getScriptTimeZone(), 
        "yyyy-MM-dd'T'HH:mm:ssXXX"
    );

注意:您可能需要通过以下方式从 GAS GUI 菜单设置脚本的时区:

文件->项目属性->信息

关于javascript - 将日期字符串转换为 YYYY-MM-DDTHH 时遇到问题 :MM:SS-HH:MM format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344902/

相关文章:

javascript - 将两个相互关联的菜单从静态转换为动态

javascript - 使用数组调用 apply

java.time.DateTimeException : Invalid date 'February 29' as '2017' is not a leap year Java

Javascript DateTime toString 问题

javascript - 如何将数组从两列过滤为非空对?

google-apps-script - 如何替换已弃用的 DocsList 服务?

jquery - Google Apps 脚本支持哪个版本的 jQuery?

JavaScript:从 JavaScript 调用 anchor 标记的点击事件

javascript - 用 ID_x 匹配 ID_x 或用 +i 循环遍历 id

sql - 根据另一条记录中的日期加入最近的记录