1

可能重复:
将符合 ISO8601 的字符串转换为 java.util.Date

在 JS 中将时间戳更改为 ISO 8601 时出现问题,因为它在 IE 和 Firefox 中的“topicDate”处出错,但它在 Chrome 中有效。所以我想在服务器端将时间戳更改为 ISO 8601 并通过 json 发送。谁能帮助我如何使用标准类将以下时间戳转换为 Java 中的 ISO 8601 格式?也欢迎任何其他关于这种方法的建议。

通过 json 发送的时间

 "topic_lstUpdate" : "2012-09-07 19:39:56.439",

JS脚本

var topicDate = new Date(args.topic_lstUpdate);
            var topicDateISO = topicDate.toISOString();
            var topicDateTimeago=jQuery.timeago(topicDate);
4

2 回答 2

4

在服务器端的 Java 中格式化:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S'Z'");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
String my8601formattedDate = df.format(new Date());

建议您包含T分隔符 - 但如果您确定两端的要求允许排除它,则可以省略它。有关详细信息,请参阅http://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations

于 2012-09-08T00:26:56.197 回答
0

它已经快到了。您可以使用此 JavaScript 进行转换:

topicDate.replace(" ", "T");
于 2012-09-08T00:29:39.297 回答