从服务器解析JSON UTC日期时间数据后,我看到了
2017-03-27 16:27:45.567
...有没有办法格式化这个,而不使用繁琐的字符串操作,以便秒部分在将其作为DateTimeFormat模式传递之前向上舍入到46," yyyy-MM- dd HH:mm:ss"?
答案 0 :(得分:1)
你可以像这样绕过第二个:
DateTime dateTime = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS")
.withZoneUTC()
.parseDateTime("2017-03-27 16:27:45.567")
.secondOfMinute()
.roundCeilingCopy();
System.out.println(dateTime);
// 2017-03-27T16:27:46.000Z
答案 1 :(得分:0)
您是否看过(并且可以使用)MomentJS库?我遇到了从服务器读取各种日期格式并在JavaScript代码中理解它们的问题(导致我here)。从那以后,我使用了MomentJS,在JavaScript中处理日期/时间变得更加容易。
以下是一个例子:
<script>
try
{
var myDateString = "2017-03-27 16:27:45.567";
var d = moment(myDateString);
var result = d.format('YYYY/MM/DD HH:mm:ss');
alert("Simple Format: " + result);
// If we have millliseconds, increment to the next second so that
// we can then get its 'floor' by using the startOf() function.
if(d.millisecond() > 0)
d = d.add(1, 'second');
result = d.startOf('second').format('YYYY/MM/DD HH:mm:ss');
alert("Rounded Format: " + result);
}
catch(er)
{
console.log(er);
}
</script>
但是,当然,你可能想把这个逻辑包装成一个函数。