Google Apps脚本字符串到目前为止的转换

She*_*ock 20 date google-apps-script

我在google apps脚本中将字符串转换为日期对象时遇到了一些问题.

我的日期采用以下格式,来自第三方API:

2013-01-17T17:34:50.507
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为Date对象:

return Date(stringDate);
Run Code Online (Sandbox Code Playgroud)

这是返回:

Thu Jan 01 01:00:00 GMT+01:00 1970
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我做错了什么,以及如何解决这个问题?

非常感谢

kan*_*nji 9

使用moment.js,解析任何ISO 8601格式都很容易.

var date = Moment.moment("2013-01-17T17:34:50.507").toDate();
Run Code Online (Sandbox Code Playgroud)

您也可以使用moment.js来解析您的任意日期字符串.

要在GAS中使用moment.js,只需在脚本编辑器中添加它即可.在GAS脚本编辑器中打开脚本,然后转到"资源",然后转到"库...",然后输入此项目密钥MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48并单击"添加".从下拉列表中选择版本,然后单击"保存".现在,您已准备好在GAS中使用moment.js.

moment.js可用于解析日期字符串,创建格式化日期字符串以及许多其他日期操作.感谢作者!

你可以在这里找到moment.js文档.


Phi*_*zak 8

似乎Date对象不知道如何处理该日期.日期采用ISO 8601格式.如果给定时区信息,Javascript可以处理日期.

您将不得不进行一些测试,但如果给您的那些日期是UTC时间,那么只需Z在调用之前在日期字符串的末尾添加一个new Date().

编辑:解析日期时,Apps脚本日期对象似乎无法处理UTC以外的时区.我为它开了一个问题.

  • 你应该调用`new Date(dateString)`,而不仅仅是`Date(dateString)`. (5认同)

小智 5

它在GScript中不起作用,至少在我编写它时对我而言。这篇文章提供了一种可行的替代方法:如何设置日期字符串的格式,以便Google脚本识别它?