javascript - 使用 JavaScript 将 (YYYY/MM/DD HH :MM:SS. MS) GMT 转换为本地时间

标签 javascript date

由于某种原因,我的一个 WebService 的 SOAP 响应如下所示:

2010/07/08 04:21:24.477

日期格式为 YYYY/MM/DD,时间为 GMT。

我不太确定如何将其转换为本地时间,因为格式很奇怪。

最佳答案

Date.parse 实际上应该将大部分日期字符串解析为其各自的时间戳。

这两个警告似乎是:

  • 不支持毫秒,因此必须在解析后将它们分开并添加。
  • 它会假定本地时间,因此应在解析之前附加 'GMT''UTC'

考虑到这些,以下应该可行:

function parseSoapDate(dateString) {
  var dateParts = dateString.split('.'),
      dateParse = dateParts[0],
      dateMilli = dateParts[1];

  return new Date(
    Date.parse(dateParse + ' GMT') +
    parseInt(dateMilli, 10)
  );
}

var date = parseSoapDate('2010/07/08 04:21:24.477');

对于 UTC 到本地时间,JavaScript 的 Date 对象应该已经为您处理了这个问题,因为它们可以报告 UTC 和用户本地时区的日期。您可以通过方法名称指定所需的方法(无论其中是否包含 UTC):

alert(date.toString());     // local time
alert(date.toUTCString());  // UTC time

关于javascript - 使用 JavaScript 将 (YYYY/MM/DD HH :MM:SS. MS) GMT 转换为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213222/

相关文章:

javascript - 需要 PayPal Express : is checkout. js?

c# - 如何确定字符串是希伯来日期还是公历日期?

r - 将月份年份转换为 r 中的日期

java - Java Web 服务中使用了错误的时区

java - 从时间戳构造java.util.Date对象时发生时区问题

java - 在java中将Jalali日历转换为格鲁吉亚日历

javascript - 使用 Angular 6 和 RxJs 6 显示时钟

javascript - 点击为div添加边框

javascript - 通过 angularJS 向瘦客户端发送消息

javascript - Jquery - 条件下拉列表不保持打开状态