gpt4 book ai didi

java - 如何使用joda time格式化固定毫秒数为hh :mm:ss?

转载 作者:行者123 更新时间:2023-12-03 10:22:53 26 4
gpt4 key购买 nike

我有输入,34600 毫秒,我想以 00:00:34 (HH:MM:SS) 格式输出。

为此,我应该查看 JDK/Joda-time 的哪些类?我需要它是高效的,最好是线程安全的,以避免在每次解析时创建对象。

谢谢。

-- 编辑--

使用此代码会产生对时区敏感的结果,我如何确保格式是“自然的”,即使用绝对值。

import java.util.Locale;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;


public class Test {
public static void main(String[] args) {
DateTimeFormatter fmt = DateTimeFormat.forPattern("kk:mm:ss").withLocale(new Locale("UTC"));
System.out.println(fmt.print(34600));
}
}

结果为 02:00:34 - +2h 是因为我的时区是 GMT+2。而预期的输出是 00:00:34。

最佳答案

对于 Joda 解决方案,请尝试一下(根据您更新的问题):

PeriodFormatter fmt = new PeriodFormatterBuilder()
.printZeroAlways()
.minimumPrintedDigits(2)
.appendHours()
.appendSeparator(":")
.printZeroAlways()
.minimumPrintedDigits(2)
.appendMinutes()
.appendSeparator(":")
.printZeroAlways()
.minimumPrintedDigits(2)
.appendSeconds()
.toFormatter();
Period period = new Period(34600);
System.out.println(fmt.print(period));

输出:

00:00:34

关于您对线程安全的偏好:

PeriodFormatterBuilder itself is mutable and not thread-safe, but the formatters that it builds are thread-safe and immutable.

(来自 PeriodFormatterBuilder 文档)

关于java - 如何使用joda time格式化固定毫秒数为hh :mm:ss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5500171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com