格式化导出的时间

时间:2012-05-09 15:05:13

标签: date datetime time icalendar rfc5545

我在jquery中创建了一个导出到ical的日历。但是,我在日期时间方面遇到了一些问题。

ical导出脚本需要这种格式的日期/时间:19970714T170000Z。

有人知道这是什么以及我应该如何准备我的字符串吗?

由于

3 个答案:

答案 0 :(得分:11)

阅读RFC(link) 给出:

  

3.3.5。日期 - 时间

     

[...]

     

日期时间=日期“T”时间

     

“DATE-TIME”值类型以三种形式表示时间值:

     

表格#1:日期与当地时间   例如,以下代表1998年1月18日晚上11点:          19980118T230000

     

表格#2:日期与UTC时间   CAPITAL LETTER Z后缀字符,到时间值。
  例如,以下代表1998年1月19日,UTC时间0700:          19980119T070000Z

     

表格#3:具有本地时间和地区参考的日期          TZID =美国/纽约:19980119T020000

     

DTSTART:19970714T133000;当地时间          DTSTART:19970714T173000Z; UTC时间          DTSTART; TZID =美国/纽约:19970714T133000                                                    ;当地时间和时间                                                    ;区域参考

答案 1 :(得分:0)

因此,要回答在JQuery中转换为此格式的问题,您可以执行以下操作。

var n = d.toISOString();

答案 2 :(得分:-1)

它几乎像是ISOString

function formatDateTime(date) {
  const year = date.getUTCFullYear();
  const month = pad(date.getUTCMonth() + 1);
  const day = pad(date.getUTCDate());
  const hour = pad(date.getUTCHours());
  const minute = pad(date.getUTCMinutes());
  const second = pad(date.getUTCSeconds());
  return `${year}${month}${day}T${hour}${minute}${second}Z`;
}

function pad(i) {
  return i < 10 ? `0${i}` : `${i}`;
}

// Example:
const date = new Date('2017-05-31T11:46:54.216Z');
date.toISOString()   // '2017-05-31T11:46:54.216Z'
date.toJSON()        // '2017-05-31T11:46:54.216Z'
formatDateTime(date) // '20170531T114654Z'