blackberry - 使用 midp/blackberry 将秒数转换为格式化字符串

标签 blackberry java-me midp

我正在尝试使用 midp 将秒数转换为格式化字符串

下面是我正在使用的代码,问题是当我在设备 (BlackBerry) 上运行此代码时,会附加 2 小时。所以 - formatSecondsAsDuration(1000) 返回“00:02:01” 我期望的是“00:00:01”

我认为这是因为 SimpleDateFormat 使用我的语言环境而发生的? 我无法使用 setTimeZone 方法将时区设置为 UTC,我认为这可以解决问题。

public static String formatSecondsAsDuration(long second) {

    Date date = new Date(second);

     return new SimpleDateFormat("HH:mm:ss").format(date);

}

我已经问过类似的问题 - Convert int val to format "HH:MM:SS" using JDK1.4但后来发现并不完全适合

最佳答案

一些非常简单的事情怎么样:

public static String formatSecondsAsDuration(long seconds) {
    long hour = seconds / 60 / 60;
    long min = (seconds / 60) - (hour * 60);
    long sec = seconds - (min * 60) - (hour * 60 * 60);

    return (hour < 10 ? "0" : "") + hour + ":" + 
           (min < 10 ? "0" : "") + min + ":" +
           (sec < 10 ? "0" : "") + sec;
}

只需确保您确实传递了秒(如参数名称所示),或者修改上面的代码以处理毫秒(如果您确实需要的话)。

编辑: 我今天刚刚遇到这个方法,看起来它完全符合您的要求,并且已经内置到 BB API 中:DateTimeUtilities.formatElapsedTime()

关于blackberry - 使用 midp/blackberry 将秒数转换为格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595269/

相关文章:

黑莓开发-UI设计

java - 将文本输入添加到 blackberrycanvas

java - 静态变量保留上次启动时的值

java - 如何在J2ME中无需单击按钮即可激活功能键?

Java ME 的 java.text.Normalizer 等效项(替换重音字符)

java-me - j2me 中的 midlet.platformRequest

blackberry - 丰富列表点击事件

java - 无法在真实设备上发送短信

java - LWUIT 水平列表滚动 垂直表格滚动

eclipse - 使用最新版本的 Eclipse 是否仍然可以进行 J2ME 开发?