以ISO YYYY-MM-DDThh:mm:ss.sTZD格式转换日期

时间:2016-01-15 02:49:53

标签: javascript jquery

我想使用javascript格式化ISO YYYY-MM-DDThh:mm:ss.sTZD格式的日期。

我可以用yyyy-MM-dd'T'HH:mm:ss.SSSZ格式转换当前日期字符串。例如2016-01-11T02:40:33.117Z。但我希望得到2016-01-11T02:40:33.117+1100

可以在javascript中使用吗?

2 个答案:

答案 0 :(得分:0)

请尝试以下操作。

var date = new Date(Date.now());
date.setTime(date.getTime() - (date.getTimezoneOffset() * 60000));
var output = date.toISOString().substring(0, date.toISOString().length - 1) + ((date.getTimezoneOffset() / 60) < 0 ? "-" : "+") + ((Math.abs(date.getTimezoneOffset() / 60) < 10) ?  ("0" + Math.abs(date.getTimezoneOffset() / 60)) : test) + "00";

output变量应该接近您要查找的内容。 (+和 - 可以反转)

注意:可能存在更好的解决方案;如果我找到它,我会发布它。

答案 1 :(得分:0)

function getCurrentDateFormated() {
  var date = new Date();
  date.setTime(date.getTime() - (date.getTimezoneOffset() * 60000));
  var timeZoneHours = date.getTimezoneOffset() / 60;
  var finalHours = Math.abs(timeZoneHours) < 10 ?
    timeZoneHours < 0 ? '-0' + timeZoneHours.toString().substring(1)
    : '+0' + timeZoneHours.toString().substring(1)
    : timeZoneHours;
  var timeZoneMin = ((timeZoneHours - Math.floor(timeZoneHours)) * 60) < 10 ?
    '0' + (timeZoneHours - Math.floor(timeZoneHours)) * 60 : (timeZoneHours - Math.floor(timeZoneHours)) * 60;
  var timeZone = finalHours + timeZoneMin;
  return date.toISOString().substring(0, 20) + date.getMilliseconds() + timeZone;
}