【问题标题】:Convert DateTime object of java to string in js将java的DateTime对象转换为js中的字符串
【发布时间】:2016-10-07 05:33:54
【问题描述】:

我正在开发一个 java 应用程序。在这我使用 Restangular 服务,角度 js 和弹簧框架工作。 我将 DateTime 对象从 restangular 调用传递给 js。我的restangular代码是-

@GET
@Path("/try")
@Timed
public DateTime create() {
    return new DateTime("2016-05-30T12:10:30.407+05:30");
}

在 js 中我希望这个对象作为字符串。我的js代码是-

$scope.try = function () {
    console.log("Hi")
    Restangular.one('tasks/try').get().then(function (data) {
        console.log(data);
    });
};

在此代码中,返回的 restangular 对象的形式为 2016-05-30T12:10:30.407+05:30,但在 JS 中我将其接收为 [2016, 6, 2, 16, 55, 52, 931] 我该怎么做才能在 JS 中将这个日期时间对象作为 2016-05-30T12:10:30.407+05:30

提前致谢。

【问题讨论】:

  • 你用的是spring mvc还是jersy?
  • 我使用了angular js v1.3.16,jersey client v2.22.2和spring。

标签: javascript angularjs spring datetime restangular


【解决方案1】:

你可以使用

data = [2016, 6, 2, 16, 55, 52, 931];

var thisDate = new (Function.prototype.bind.apply(Date, [null].concat(data)));

在这里,我们基本上是以编程方式将 Date 函数与数据数组中的所有元素一起传递。

改变

这个方法会有点长,但会给你一个时间戳,你可以通过它转换成任何甲酸盐

function convertToTimeStamp (array) {
    var str = array[0] + "," + array[1] + "," + array[2];
    _ts = new Date(str).getTime()
    timeStamp = _ts + (array[3]*3600 + array[4]*60 + array[5])*1000 + array[6];
    return timeStamp;
}

现在您可以致电convertToTimeStamp(array) 获取时间戳值

您可以通过将时间戳转换为日期对象来将其转换为任何格式 new Date(timeStamp)

【讨论】:

  • 它给出的日期无效
  • 你确定你正确地传递了数据,因为它对我很有效。
  • 是的,我确定。因为以前我正在使用 dropwizard 框架工作并且它工作得很好,现在我切换到 spring 然后它不工作了
  • 该函数返回的时间戳错误
  • 要使上述功能正常工作,您必须确保array[1] 是月份,array[2] 是日期。
猜你喜欢
  • 1970-01-01
  • 2016-08-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2018-05-11
相关资源
最近更新 更多