首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转换ISO YYYY-MM-DDThh:mm:ss.sTZD格式的日期

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

Stack Overflow用户
提问于 2016-01-15 10:49:53
回答 2查看 1.2K关注 0票数 1

我想用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中是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2016-01-15 11:08:14

尝试以下操作。

代码语言:javascript
运行
复制
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变量应该接近您要查找的内容。(+和-可能颠倒)

备注:可能有更好的解决方案;如果我找到了,我会把它贴出来。

票数 0
EN

Stack Overflow用户

发布于 2017-11-15 18:43:05

代码语言:javascript
运行
复制
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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34803612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档