Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 将字符串时间戳转换为日期会导致重置为UNIX历元_Date_Google Apps Script_Datetime Format - Fatal编程技术网

Date 将字符串时间戳转换为日期会导致重置为UNIX历元

Date 将字符串时间戳转换为日期会导致重置为UNIX历元,date,google-apps-script,datetime-format,Date,Google Apps Script,Datetime Format,在GoogleApps脚本中将字符串转换为日期对象时遇到一些问题 我的日期采用以下格式,来自第三方API: 2013-01-17T17:34:50.507 我正在尝试将其转换为日期对象: return Date(stringDate); 这是返回的: Thu Jan 01 01:00:00 GMT+01:00 1970 有人能告诉我我做错了什么,以及如何解决这个问题吗?日期对象似乎不知道如何处理该日期。日期到了。Javascript可以处理给定时区信息的日期 您必须进行一些测试,但如果提供

在GoogleApps脚本中将字符串转换为日期对象时遇到一些问题

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

2013-01-17T17:34:50.507
我正在尝试将其转换为日期对象:

return Date(stringDate);
这是返回的:

Thu Jan 01 01:00:00 GMT+01:00 1970

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

日期对象似乎不知道如何处理该日期。日期到了。Javascript可以处理给定时区信息的日期

您必须进行一些测试,但如果提供给您的日期是UTC时间,则只需在日期字符串末尾添加一个
Z
,然后再调用
new date()


编辑:分析日期时,应用程序脚本日期对象似乎无法处理UTC以外的时区

它在GScript中不起作用,至少在我编写它的时候是这样。 这篇文章提供了一个可行的替代方案:

使用,解析任何一个函数都很容易

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

要在GAS中使用矩.js,只需将其添加到脚本编辑器中。 在GAS脚本编辑器中打开脚本,然后转到“资源”,然后转到“库…”,然后放入此项目密钥
mhmhix6c1bwsqgm1pziw_PxhMjh3Sh48
,然后单击“添加”。从下拉列表中选择版本,然后单击“保存”。现在,您可以在GAS中使用矩.js了

js可用于解析日期字符串、创建格式化的日期字符串和许多其他日期操作。感谢作者

您可以找到moment.js文档。

从现在起,
new Date()
似乎可以工作:

var dT = new Date("2013-01-17T17:34:50.507");
console.info("dT: %s or %d", dT, dT.getTime());

返回Google Apps脚本中的
dT:Thu Jan 17:34:50 GMT+01:00 2013或1.358440490507E12
,我确认我收到的日期是GMT,我所在的环境也是GMT-我尝试添加Z,不幸的是问题仍然存在。让Date对象表示正确日期的唯一方法是出于某种原因使用posix time进行初始化,尽管不幸的是,这不是一个选项。感谢您的帮助。您应该拨打
newdate(dateString)
,而不仅仅是
Date(dateString)
。请不要只是在回答中提供链接。至少对链接中解释的内容提供一点总结。如果作者出于某种原因删除了StackOverflow答案,会发生什么?您应该至少包含所提供解决方案的概述。+1 for Moment.js但您可能更喜欢嵌入自己的解决方案,而不是依赖于库。例如,正确地说,moment.js会随着时间的推移而变化。e、 g.弃用它将使用的特定日期格式字符串可能会破坏您的脚本,嵌入它可以让您比升级库版本更好地管理转换。@Jonathon,谢谢您的评论。我们为什么不在脚本中添加指定的库版本呢?因此,我们不必担心库中的变化。我没领会你的意思吗?你可以的。但是,如果一个库只是一个.js库的气体包装器,那么我更喜欢嵌入源代码,这样您就可以准确地控制您使用的是哪种味道。速度也一样。
var dT = new Date("2013-01-17T17:34:50.507");
console.info("dT: %s or %d", dT, dT.getTime());