【问题标题】:How to serialize Java Calendar and Java Date to Javascript Date如何将 Java 日历和 Java 日期序列化为 Javascript 日期
【发布时间】:2013-06-03 16:25:47
【问题描述】:

我想从 Java 序列化到 JSON 对象 Java Calendar 和 Java Date 到 Javascript Date。

我希望在 Javascript 中,无需执行“eval”或“new Date”的变量 Javascript Date 具有 Date 值。

我试图返回“新日期(timeInMiliseconds)”,但我得到了,显然是一个'String'I。我知道我可以对这个“字符串”做“评估”,但我不想这样做。 我也尝试过返回“毫秒”并在“Javascript”中调用“new Date()”,但我不想这样做。

JSON 目前的样子

 {hours:[
   {date:'new Date(1)', color:'fff'},
   {date:'new Date(2)', color: 'ddd'}, 
   ... ]}

有什么建议吗?

信息:我正在使用 Spring MVC 和 Jackson 进行序列化。


编辑#1:

我知道这些方法:

Java 返回 ----------------------- Javascript

"new Date(100000)" ------------- var myDate = eval("new Date(100000)");

100000 ------------------ var myDate = new Date(10000);

但我正在搜索向客户端解析器指示发送的数据片段是日期表示的格式。 但是如何将它转换为 JavaScript Date 对象呢?

【问题讨论】:

  • new Date (timeInMiliseconds) 有什么问题?
  • @mplungjan 问题是Java返回String,我不喜欢做eval。
  • @mplungjan 好的。如果我尝试每个 var 日期的 Java 返回是“新日期(毫秒)”。在 Javascript 中,我需要对每个 String var 进行“评估”以获取 Javscript 日期。
  • @mplungjan 输出是从服务器控制器到读取 json 的 jQuery 插件。
  • 那么 JSON 看起来究竟如何?

标签: java javascript json jackson


【解决方案1】:

答案是否定的。

如果没有eval 或new Date(extracted timestamp),则无法解析带有date: "new date(123434534)" 的字符串

object.date=new Date(object.date.replace(/[^\d]/g,""));

我还是看不懂为什么你需要传递"new Date(timestamp)"的字符串

如果你只发送时间戳,你会更好,并且会保存数据。

【讨论】:

  • 我正在传递一串“新日期(时间戳)”以尝试找到解决方案。我知道这是一个坏主意,最好的解决方案是以 milis 为单位的返回时间。所以问题是我希望在客户端有一个没有“eval”或“new Date”的日期
  • 我的回答是:不可能
猜你喜欢
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多