如何将角度UTC时间戳转换为本地时间戳?

时间:2017-03-20 02:17:04

标签: javascript angularjs ionic-framework timestamp utc

是否有将UTC时间戳转换为本地时间戳的功能或方法?

我将时间戳传递给角度时刻,但服务器的时间戳是UTC。

2 个答案:

答案 0 :(得分:1)

请注意,JavaScript时间戳(即从Date.now()date.getTime()检索的值)没有与之关联的时区。它只是自1970年1月1日00:00:00 UTC以来经过的毫秒数。在JavaScript中,没有 local 时间戳这样的东西。要将时间戳转换为使用机器本地时区的日期,您只需执行以下操作:

let myTimestamp = Date.now();
let dateInLocalTimezone = new Date(myTimestamp);

答案 1 :(得分:0)

目前还不清楚这个问题是关于解析还是格式化,或两者兼而有之,或者你是否只想在angular.js或ionic-framework中使用函数。以下是普通的ECMAScript。

  

是否有将UTC时间戳转换为本地时间戳的功能或方法?

是的,但这取决于时间戳是什么。如果它是ISO 8601扩展格式的字符串,如“2017-03-20T15:45:06Z”,那么在现代浏览器中,它可以使用Date构造函数(创建Date对象)或Date来解析内置解析器。解析(生成时间值)。

如果是任何其他格式,则应使用小型函数或库手动解析。

获得Date对象后,可以使用Date方法在主机时区中对其进行格式化,请参阅 Where can I find documentation on formatting a date in JavaScript?

e.g。

var s = "2017-03-20T12:00:00Z"
var d = new Date(s);

// Browser default, implementation dependent
console.log(d.toString());

// Use toLocaleString with options, implementation dependent and problematic
console.log(d.toLocaleString(undefined,{
  weekday: 'long',
  day: 'numeric',
  month: 'long',
  year: 'numeric',
  hour: '2-digit',
  hour12: false,
  minute: '2-digit',
  second: '2-digit'
}));