格式化UTC日期时间的部分秒数

时间:2017-03-27 18:28:11

标签: java string datetime jodatime utc

从服务器解析JSON UTC日期时间数据后,我看到了

2017-03-27 16:27:45.567

...有没有办法格式化这个,而不使用繁琐的字符串操作,以便秒部分在将其作为DateTimeFormat模式传递之前向上舍入到46," yyyy-MM- dd HH:mm:ss"?

2 个答案:

答案 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>

但是,当然,你可能想把这个逻辑包装成一个函数。