1

我得到了一个毫秒值。我想使用格式字符串,将这些毫秒格式化为时间格式。例如 45000ms = 45s 或 0m 45s 或其他。所以这没什么特别的。我为此使用了 SimpleDateFormat,但现在出现了我的问题:

61000ms 以 1m 1s 结束。这对我来说没问题,如果格式字符串中给出了一分钟。但是当格式字符串中没有给出分钟时,它应该打印出 61s 而不仅仅是 1s。

有没有简单的方法来实现这一点?目前我没有做任何丑陋的字符串格式化代码就看不到它。

我希望你能帮帮我 :)

提前致谢!被杀

编辑:

为了更好地理解:你有 65400 毫秒。

格式字符串有分、秒、毫秒:1m 5s 400ms
格式字符串有分和秒:1m 5s
格式字符串有秒:65s
格式字符串有秒和毫秒:65s 4ms
格式字符串有分和毫秒:1m 5400ms

4

3 回答 3

1

我不确定您到底要转换什么,但请查看time units

于 2011-08-04T18:55:27.480 回答
0

如果我理解正确,您会得到一个毫秒数和一个时间格式字符串,并且需要生成一个格式正确的时间?如果没有,请忽略其余部分...

也许不是最好的方法,而是一个不错的瀑布:将毫秒转换为天、小时、分钟、秒(或更多或更少,取决于预期范围)的一组整数,然后通过格式向前迭代细绳。如果存在天,那太好了,把天数贴在那里。如果没有,请跳过它,乘以 24 并添加到小时数。对小时->分钟,分钟->秒执行相同的操作,即使格式很奇怪(例如天和秒,但不是分钟),您也应该得到正确的格式。

于 2011-08-04T18:50:08.727 回答
0

不完全确定您在寻找什么,但您可以像这样解析毫秒;

private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd MMM yyyy");

public static void main(String[] args) {
    final long millis = System.currentTimeMillis();
    System.out.println(DATE_FORMAT.format(new Date(millis))); // Prints 05 Aug 2011
}

显然,您可以根据需要调整日期格式以显示秒、毫秒等。

于 2011-08-04T18:50:41.113 回答