long  ms = 300 * 1000 ;//毫秒数  
    SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");//初始化Formatter的转换格式。  
 System.out.println( formatter.format(ms)); 为什么默认输出的是8

解决方案 »

  1.   

    copy你的代码我这直接报错,JDK1.4的
    JDK 1.6的API去查了下也没有这个format(long)的方法
    你可以尝试下以下代码,看是否你需要的public static void main(String[] args) throws Exception {
    long ms = 300 * 1000 ;//毫秒数  
    System.out.println(new SimpleDateFormat("HH:mm:ss").format(new SimpleDateFormat("SS").parse(ms+"")));
    }
      

  2.   

    DateFormat提供的是格式化某个点的时间。不是格式化某段时间
      

  3.   


    你的ms 只是一個數值,不是一個準確的時間,SimpleDateFormat  只能用來格式化一個準確的時間,例如:14點12分12秒,這樣的時間!
      

  4.   

    刚看错了你说的意思  呵呵
    SimpleDateFormat
    创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序long timeTemp = 300*1000; 
    long time = timeTemp; 
    time /= 1000; 
    time = time % (24*3600); 
    long hour = time/3600;
    time = time % 3600; 
    long min = time/60;
    time = time % 60; 
    long sec = time; 
    System.out.println(timeTemp+"毫秒是:"+hour+"小时"+min+"分钟"+sec+"秒零");这是你想要的结果吧
      

  5.   

    formatter.format(new date(ms))这样行吗
      

  6.   

    public final String format(Date date)
    此方法的参数是Date类型的。。
      

  7.   

    jdk里没有时间段的概念。joda-time里 对应 jdk Date 的是 Instant, 300*1000 ms 则是 Duration。