【问题标题】:How to convert or deserialize org.joda.time.LocalDateTime to milliseconds using Thymeleaf?如何使用 Thymeleaf 将 org.joda.time.LocalDateTime 转换或反序列化为毫秒?
【发布时间】:2016-01-10 19:48:44
【问题描述】:

我有 Thymeleaf 代码(此代码需要我为 JQuery - DatePicker 添加参数):

<table th:attr="data-availible-dates=${defoultSetting.avalibleDates}">

现在页面看起来像:

data-availible-dates="[2014-01-09T00:00:00.000, 2014-01-14T00:00:00.000, 2014-01-10T00:00:00.000, 2014-01-23T00:00:00.000, 2014-01-15T00:00:00.000, 2014-01-06T00:00:00.000, 2014-01-24T00:00:00.000, 2014-01-20T00:00:00.000, 2014-01-16T00:00:00.000, 2014-01-21T00:00:00.000, 2014-01-08T00:00:00.000, 2014-01-22T00:00:00.000, 2014-01-17T00:00:00.000, 2014-01-13T00:00:00.000]"

但我不会像这个例子那样转换为毫秒:

data-availible-dates="[1451170800000, 1452380400000, 1452466800000, 1452553200000]"

我可以使用 Thymeleaf 并制作类似于 JsonDeserializer.. 的东西,它将在构建页面之前将数据转换为毫秒吗?

结果:

我决定发送毫秒列表,第二个我现在使用下一个代码,以防需要从服务器端添加变量到 JS:

<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
    var avalibleDates = /*[[${defoultSetting.avalibleDates}]]*/;
/*]]>*/
</script>

【问题讨论】:

    标签: java jquery jodatime thymeleaf joda-convert


    【解决方案1】:

    嗯,Thymeleaf 中似乎没有内置函数可以做到这一点。 但是您可以编写简单的 Javascript 函数,以毫秒为单位将 DateTime 转换为时间,使用以下函数:

    var myDate = new Date("2012-02-10T13:19:11+0000");
    var result = myDate.getTime();
    

    另一方面,如果您需要以毫秒为单位的时间,为什么您不会在 Java 端转换它并将处理后的最终变量集(包含以毫秒为单位的时间)发送到 Thymeleaf?

    【讨论】:

    • 你好,“为什么你不会在 Java 端转换它” - 因为我有类型为 org.joda.time.LocalDateTime 的变量,如果我将它们保持在毫秒内,并且想要操作- 这将是多余的
    • 但是用js转换的建议是有道理的,我稍后再试,如果有结果-我会竖起大拇指
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2015-11-14
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多