如何使用 google 应用程序脚本将 date/time 格式从 yyyy-mm-ddT00:00:00Z 转换为 yyyy-mm-dd 00:00:00
How to convert date/time format from yyyy-mm-ddT00:00:00Z to yyyy-mm-dd 00:00:00 using google apps script
我使用应用程序脚本从 easypost api 中提取了交付 date/times。当我将 date/time 写入 sheet 时,格式错误。它是 yyyy-mm-ddT00:00:00Z,它说它是文本而不是日期。我需要帮助 运行 脚本来在数据达到 sheet 后进行更改。有人可以帮忙吗?
var parsed = JSON.parse(response.getContentText());
activeSheet.getRange(i, 26).setValue(parsed.status);
if (parsed.status == 'delivered'){
var deliveredEvents = parsed.tracking_details.filter(function (el) {
return el.status == 'delivered';
});
if (deliveredEvents.length == 1) {
activeSheet.getRange(i, 22).setValue(deliveredEvents[0].datetime);
sheet 中的日期如下所示:
交货日期
2022-03-18T16:03:42Z
如果日期字符串是构造函数可识别的格式,则:
activeSheet.getRange(i, 22).setValue(new Date(deliveredEvents[0])).setNumberFormat("yyyy-MM-dd");
如果它不能识别它,您可能必须提取完整的年、月和日期并自己创建 Date() 对象。您并没有真正格式化日期,您可以按照电子表格表示的方式格式化日期,或者您可以 post 将其作为字符串,在这种情况下它不再是 Date() 对象
根据您的示例:
let t = "1969-12-31".split('-');
let dt = new Date(t[0],t[1]-1,t[2]);
如果您使用的是 google 工作表,我建议您只使用单元格函数根据需要拆分 date/time,而不是使用应用程序脚本。
我首先通过执行 =SPLIT(A1,"T","")
吐出单元格,这给了我两个单元格,一个包含数据,一个包含时间 (+"Z")。您可以使用相同的方法轻松删除 Z。请注意,Z 代表 UTC 时间,因此 EasyPost 为您提供的时间戳被视为 UTC 时间。
示例:
https://docs.google.com/spreadsheets/d/17fl5_KHkc9JuEO1eHe_DQIjo32JxNlqKnTC8yTvV0Vg/edit?usp=sharing
我使用应用程序脚本从 easypost api 中提取了交付 date/times。当我将 date/time 写入 sheet 时,格式错误。它是 yyyy-mm-ddT00:00:00Z,它说它是文本而不是日期。我需要帮助 运行 脚本来在数据达到 sheet 后进行更改。有人可以帮忙吗?
var parsed = JSON.parse(response.getContentText());
activeSheet.getRange(i, 26).setValue(parsed.status);
if (parsed.status == 'delivered'){
var deliveredEvents = parsed.tracking_details.filter(function (el) {
return el.status == 'delivered';
});
if (deliveredEvents.length == 1) {
activeSheet.getRange(i, 22).setValue(deliveredEvents[0].datetime);
sheet 中的日期如下所示:
交货日期 2022-03-18T16:03:42Z
如果日期字符串是构造函数可识别的格式,则:
activeSheet.getRange(i, 22).setValue(new Date(deliveredEvents[0])).setNumberFormat("yyyy-MM-dd");
如果它不能识别它,您可能必须提取完整的年、月和日期并自己创建 Date() 对象。您并没有真正格式化日期,您可以按照电子表格表示的方式格式化日期,或者您可以 post 将其作为字符串,在这种情况下它不再是 Date() 对象
根据您的示例:
let t = "1969-12-31".split('-');
let dt = new Date(t[0],t[1]-1,t[2]);
如果您使用的是 google 工作表,我建议您只使用单元格函数根据需要拆分 date/time,而不是使用应用程序脚本。
我首先通过执行 =SPLIT(A1,"T","")
吐出单元格,这给了我两个单元格,一个包含数据,一个包含时间 (+"Z")。您可以使用相同的方法轻松删除 Z。请注意,Z 代表 UTC 时间,因此 EasyPost 为您提供的时间戳被视为 UTC 时间。
示例: https://docs.google.com/spreadsheets/d/17fl5_KHkc9JuEO1eHe_DQIjo32JxNlqKnTC8yTvV0Vg/edit?usp=sharing