要在JSTL中设置日期和时间格式,我们可以使用fmt
标记显示here
我必须在其他前端工具(如数据表)中指定使用日期的格式。
我避免使用fmt的任何特定格式,只使用type
或dateStyle
之类的参数来获得格式化的输出。但问题是数据表需要知道格式的日期列才能正确排序这些字段。
当我使用
之类的参数时<fmt:formatDate type = "both" dateStyle = "long" timeStyle = "long" value = "${now}" />
输出结果为:
2017年8月23日上午10:52:09 UTC
如何将此日期输出的格式指定为:
$.fn.dataTable.moment( 'MMMM dd, YYYY hh:mm:ss aa z' );
获得准确的排序结果。
答案 0 :(得分:0)
您应该使用:
$.fn.dataTable.moment( 'MMMM DD, YYYY hh:mm:ss A', false );
请注意,它使用Firebase Database Documentation,因为没有格式选项来表示日期的UTC
部分。
以下是完整的测试用例:
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script>
</head>
<body>
<table id="example">
<thead>
<tr>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr><td>August 23, 2017 10:52:09 AM UTC</td></tr>
<tr><td>August 23, 2018 10:52:09 AM UTC</td></tr>
<tr><td>August 21, 2017 10:52:09 AM UTC</td></tr>
<tr><td>August 23, 2017 08:47:09 PM UTC</td></tr>
<tr><td>March 29, 2017 10:52:09 AM UTC</td></tr>
<tr><td>April 01, 2017 10:52:09 AM UTC</td></tr>
</tbody>
</table>
<script>
$(document).ready(function() {
$.fn.dataTable.moment( 'MMMM DD, YYYY hh:mm:ss A', false );
$('#example').DataTable();
} );
</script>
</body>
</html>