【问题标题】:get UTC timestamp from formated date - javascript从格式化日期获取 UTC 时间戳 - javascript
【发布时间】:2016-03-25 03:10:03
【问题描述】:

我有一个 UTC 日期字符串 -> 10/30/2014 10:37:54 AM

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

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

谢谢

【问题讨论】:

标签: javascript timestamp utc


【解决方案1】:

你可以减少“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());

【讨论】:

  • 为什么要在 d.getMonth() 后面加上 +1?
  • 月份值从 0 开始。意思是“0”是一月,“1”是二月。但是 Date.UTC 函数期望基于 1 的值,这意味着“1”是一月......等等,这就是我们添加 +1 的原因。
【解决方案2】:

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

参考:

(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);
})()

【讨论】:

    【解决方案3】:

    希望这会有所帮助:

    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);
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        试试Date.parse

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

        【讨论】:

          【解决方案6】:

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

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

          但我建议你使用像 moment.js 这样的库,它可以更容易地解析日期

          【讨论】:

            猜你喜欢
            • 2020-06-02
            • 2019-10-25
            • 2012-01-30
            • 2017-02-03
            • 2018-01-17
            • 2018-06-15
            • 1970-01-01
            • 2013-12-26
            • 1970-01-01
            相关资源
            最近更新 更多