如何将HTTP标头日期转换为谷歌工作表中的日期



我将HTTP标头日期放入格式为Tue, 08 Dec 2020 18:15:15 GMT的Google Sheets中。它似乎是常见的Java日期格式,但Google Sheets不认为它是日期。

我尝试了谷歌表单的所有内置可能性来重新格式化日期,但没有成功。

如何将HTTP标头日期从当前格式转换为Google Sheets识别为真实日期的格式?

看看这个问题Google Sheet API V4(Java(在单元格中附加日期,其中标记了类似的问题。

还可以查看:
谷歌日期格式

谷歌应用程序脚本使用特定版本的JavaScript(ECMA-262第三版(,正如您所发现的,无法以ISO 8601格式解析日期/时间。下面是我在网上找到的一个修改后的功能:

var dt = new Date(getDateFromIso("2012-08-03T23:00:26-05:00"));
// http://delete.me.uk/2005/03/iso8601.html
function getDateFromIso(string) {
try{
var aDate = new Date();
var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var d = string.match(new RegExp(regexp));
var offset = 0;
var date = new Date(d[1], 0, 1);
if (d[3]) { date.setMonth(d[3] - 1); }
if (d[5]) { date.setDate(d[5]); }
if (d[7]) { date.setHours(d[7]); }
if (d[8]) { date.setMinutes(d[8]); }
if (d[10]) { date.setSeconds(d[10]); }
if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}
offset -= date.getTimezoneOffset();
time = (Number(date) + (offset * 60 * 1000));
return aDate.setTime(Number(time));
} catch(e){
return;
}
}

相关内容

  • 没有找到相关文章

最新更新