2011-08-04 98 views
1

我得到了毫秒值。我想使用格式字符串,将这些毫秒格式化为时间格式。例如45000ms = 45s或0m 45s或其他。所以这不是特别的事情。我为此使用了SimpleDateFormat,但现在出现了我的问题:Android:当没有分钟格式时,将毫秒格式化为> 60秒

61000ms以1m 1s结尾。这对我来说是好的,IF格式字符串中有一分钟。但是当格式字符串中没有给出分钟时,它应该打印出61s而不是1s。

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

我希望你能帮助我:)

感谢先进! 被杀

编辑:

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

格式串具有分,秒,毫秒:1米5秒400毫秒
格式字符串具有分和秒:1米5S
格式字符串具有秒:65S
格式字符串具有秒和毫秒:65S 4ms的
格式字符串有分钟和毫秒:1米5400毫秒

回答

0

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

也许不是最好的方式,但种类不错的瀑布:将毫秒数转换为一组整数数天,数小时,分钟,秒(或更多或更少,取决于预期的范围),然后通过格式字符串向前迭代。如果一天存在,那么很好,坚持在那里的天数。如果不是,请跳过它,乘以24并加上小时。对于小时 - >分钟,分钟 - >秒,也应该这样做,并且即使格式奇怪(如天和秒,但不是几分钟),也应该以正确格式结束。

+0

是的,你明白我的意思。但这个“通过格式字符串迭代”听起来像“丑陋的字符串格式”我在我的问题中提到:( – slaindevil

+0

只需检查.indexOf(“M”)== -1 – yoozer8

+0

我给这个状态的“答案”因为它是我的问题的最接近的答案 – slaindevil

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 
} 

很明显,你可以调整在必要时显示秒,毫秒的日期格式等

+0

谢谢,但我没有尝试正常格式化,我只想在给定的格式字符串中显示分钟时间如果在格式字符串中没有给定分钟,那么所有秒应该转换为秒(如果在格式字符串中给出) – slaindevil

1

我不知道究竟你正在尝试转换,但看看time units

+0

对不起,我需要格式字符串来格式化。 – slaindevil