You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Java返回至AngularJS控制器的Map中获取日期值

解决AngularJS获取Java返回Map中日期值的问题

嘿,我来帮你搞定这个显示[object object]的问题!其实核心就是你拿到的日期是一个JS对象,直接输出肯定会显示这个,得把它拆成具体字段或者转成可读的日期格式才行。

第一步:先搞清楚返回的日期结构

首先你可以在AngularJS控制器里先打印一下拿到的响应对象,看看日期到底是什么样的:

// 假设你用$http请求拿到的响应存在response变量里
console.log(response.data.createDate); // 把你的日期键替换成实际的键名

打印后你会看到几种常见的情况,对应不同的处理方式:


情况1:日期是包含年月日等字段的对象

比如Java的Date对象被序列化成了这样的结构:

{
  "year": 2024,
  "month": 4, // 注意:Java里的月份是从0开始的,所以5月会显示4
  "day": 20,
  "hours": 15,
  "minutes": 20
}

那你可以直接访问这些字段,拼接成你想要的格式:

var dateObj = response.data.createDate;
// 拼接成YYYY-MM-DD格式,记得给月份加1
var readableDate = `${dateObj.year}-${dateObj.month + 1}-${dateObj.day}`;
// 如果要带时间的话
var readableDateTime = `${dateObj.year}-${dateObj.month + 1}-${dateObj.day} ${dateObj.hours}:${dateObj.minutes}`;

情况2:日期是时间戳(毫秒数)

如果Java返回的是日期对应的毫秒数(比如1716208800000),那你可以用JS的Date对象来转换:

var timestamp = response.data.createDate;
var date = new Date(timestamp);
// 转成YYYY-MM-DD格式
var readableDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
// 转成带时间的格式
var readableDateTime = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}`;

情况3:日期是ISO格式的字符串

如果Java用了Jackson这类序列化工具,可能直接把Date转成了ISO格式的字符串,比如"2024-05-20T15:20:00.000+0000",那你可以直接用这个字符串,或者转成Date对象再处理:

var dateStr = response.data.createDate;
// 直接用的话可以截取前面的日期部分
var readableDate = dateStr.split('T')[0];
// 或者转成Date对象自定义格式
var date = new Date(dateStr);
var readableDateTime = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}`;

只要你先搞清楚返回的日期结构,对应上面的方法处理,就能拿到具体的日期值,而不是[object object]啦!

内容的提问来源于stack exchange,提问作者user222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:13:12