Java日期格式为JavaScript日期格式

时间:2009-06-17 15:21:21

标签: java javascript date-format

我希望能够转换Java日期格式字符串,例如 dd / MM / yyyy (07/06/2009)到JavaScript日期格式字符串,例如 dd / mm / yy (07/06/2009)。

以前是否有人这样做过,或者知道我在哪里可以找到已经执行此操作的代码?

提前致谢。

修改

感谢所有回复,但现在我意识到自己的错误,也可能是为什么你们这么多人都在努力理解这个问题; JavaScript没有内置日期格式化功能。我正在使用jQuery UI datepicker,我一直在设置它的日期格式,假设它在某个时候调用标准的JS函数,而不是使用它自己的库!当我用Google搜索格式化字符串时,我直接跳到了可以使用的字母表中,在开头跳过了解释如何使用脚本的位。

无论如何,我必须继续并且可能自己编写我想,将Java日期格式字符串转换为jQuery日期格式字符串(或尽可能接近) - 我正在处理我们产品的i18n并且已经创建了一个java类,它存储了整个应用程序中使用的首选日期格式字符串,我的目的是也能够为任何jsps提供JS中等效的格式字符串。

非常感谢。

10 个答案:

答案 0 :(得分:46)

如果您只需要将日期从Java传递给JavaScript,我认为最好的方法是使用date.getTime()将Java日期转换为毫秒,创建一个用这毫秒初始化的JavaScript日期使用new Date(milliseconds)创建值,然后使用JavaScript Date对象的方式格式化日期,例如:date.toLocaleString()

答案 1 :(得分:6)

您可以使用我的插件jquery-dateFormat

// Text
$.format.date("2009-12-18 10:54:50.546", "dd/MM/yyyy");
// HTML Object
$.format.date($("#spanDate").text(), "dd/MM/yyyy");
// Scriptlet
$.format.date("<%=java.util.Date().toString()%>", "dd/MM/yyyy");
// JSON
var obj = ajaxRequest();
$.format.date(obj.date, "dd/MM/yyyy");

答案 2 :(得分:3)

这里回答了类似的话题: Converting dates in JavaScript

我个人认为这是一个相当大的痛苦并且接受了作者的建议并使用了一个图书馆。如上所述,如果您能够承担为应用程序下载或已经使用它的开销,那么jQuery datepicker有一个可行的解决方案。

答案 3 :(得分:1)

如果您使用的是Java,请查看Simple Date Format类。

答案 4 :(得分:1)

这个JavaScript库应该能够帮到你。

http://plugins.jquery.com/project/fIsForFormat

(我不知道他们为什么把它作为jQuery插件,因为它可以独立运行。)

您只需将原始格式化日期拆分为各个元素,然后使用这些元素创建新的日期对象。然后,使用此库的“Date.f()”方法将其输出为您可能想要的任何格式。

例如:

var dateOld = "11/27/2010",
    dateArr = date1.split("/"),
    dateObj = new Date(dateArr[2], dateArr[0], dateArr[1]),
    dateNew = dateObj.f("MMM d, yyyy");

document.write("Old Format: " + dateOld + "<br/>New Format: " + dateNew);

答案 5 :(得分:1)

这对我来说很好用:

<%
Date date = Calendar.getInstance().getTime();
%>

<script>
var d = new Date(<%=date.getTime()%>);
alert(d);
</script>

答案 6 :(得分:1)

查看moment.js!它是“用于解析,操作和格式化日期的轻量级javascript日期库”。它是一个非常强大的小库。

这是一个例子......

var today = moment(new Date());
today.format("MMMM D, YYYY h:m A");        // outputs "April 11, 2012 2:32 PM"

// in one line...
moment().format("MMMM D, YYYY h:m A");     // outputs "April 11, 2012 2:32 PM"

这是另一个例子......

var a = moment([2012, 2, 12, 15, 25, 50, 125]);
a.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, March 12th 2012, 3:25:50 pm"
a.format("ddd, hA");                       // "Mon, 3PM"
a.format("D/M/YYYY");                      // "12/3/2012"

另外,值得一提的是结帐date.js。我认为这两个库相互补充。

答案 7 :(得分:1)

我建议您MomentJS使用此Plugin允许您将Java模式转换为JS模式(MomentJS)

答案 8 :(得分:0)

this page中的javascript代码实现了一些日期函数,它们“使用与java.text.SimpleDateFormat类相同的格式字符串,但有一些小的例外”。它并不是你想要的,但它可以是一个很好的起点。

答案 9 :(得分:0)

如果你只是想格式化日期我的日期扩展会做得很好 - 它也会解析数据格式并进行大量的日期数学/比较:

DP_DateExtensions Library

不确定它是否有帮助,但我发现它在几个项目中非常宝贵。