从格式化日期获取UTC时间戳-javascript

get UTC timestamp from formated date - javascript

本文关键字:时间戳 -javascript UTC 获取 格式化 日期      更新时间:2023-09-26

我有一个UTC日期字符串->2014年10月30日上午10:37:54

如何获取此UTC日期的时间戳?据我所知,以下是作为我的本地时间处理的

var d = new Date("10/30/2014 10:37:54 AM");
return d.getTime();

感谢

您可以使用Date.UTC创建UTC格式的日期对象。

参考:

  • 堆栈溢出
  • MDN

(function() {
  var d = new Date();
  var d1 = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()));
  console.log(+d);
  console.log(+d1);
})()

您可以减少"TimezoneOffset"

var d = new Date("10/30/2014 10:37:54 AM");
return d.getTime() - (d.getTimezoneOffset() *1000 * 60);

你也可以使用UTC功能

var d = new Date("10/30/2014 10:37:54 AM");
return Date.UTC(d.getFullYear(),d.getMonth()+1,d.getDate(),d.getHours(),d.getMinutes(),d.getSeconds());

如果格式是固定的,您可以解析它并使用Date.UTC()API。

一个快速的破解方法是在解析之前将UTC附加到字符串的末尾:

var d = new Date("10/30/2014 10:37:54 AM UTC"); 

但我建议您使用moment.js这样的库,它使解析日期变得更容易

尝试Date.parse

var d = new Date("10/30/2014 10:37:54 AM");
var timstamp = Date.parse(d) / 1000;

希望这有帮助:

Date date= new Date();
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
    date = sdf.parse(date.toString());
    String timestamp = sdf2.format(date);