Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将毫秒转换为小时、分钟、秒时出错_Java_Android_Timestamp_Java Time - Fatal编程技术网

Java 将毫秒转换为小时、分钟、秒时出错

Java 将毫秒转换为小时、分钟、秒时出错,java,android,timestamp,java-time,Java,Android,Timestamp,Java Time,我知道我的问题已经被问过很多次了,但我又写了一遍,因为我无法解决我的问题 我想把以毫秒表示的时间(我想是的)转换成小时和分钟。 我知道哪一个是目标,我的意思是正确的时间和分钟,但我无法实现它 我试过这个: long elevenPASTEleven= 33240000; // 11:11 Date date = new Date(elevenPASTEleven); DateFormat formatter = new SimpleDateFormat("HH:mm:s

我知道我的问题已经被问过很多次了,但我又写了一遍,因为我无法解决我的问题

我想把以毫秒表示的时间(我想是的)转换成小时和分钟。 我知道哪一个是目标,我的意思是正确的时间和分钟,但我无法实现它

我试过这个:

    long elevenPASTEleven= 33240000;  // 11:11
    Date date = new Date(elevenPASTEleven);
    DateFormat formatter = new SimpleDateFormat("HH:mm:ss:SSS");
    String dateFormatted = formatter.format(date);
    System.out.println(dateFormatted);
输出为:

    10:14:00:000
我真的不明白错误在哪里

代码中的long值是从远程网站检索的,我对其进行解析:

    Number value: 33240000
所以我想把这个值转换成人类可读的时间,但我不能

你能给我一些建议吗


提前谢谢你

尝试此方法将毫秒转换为小时、分钟和秒

long millies = System.currentTimeMillis();
long hour = TimeUnit.MILLISECONDS.toHours(millies);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millies);
long seconds = TimeUnit.MILLISECONDS.toSeconds(millies);
如果你想安排你的时间

public String getDurationString(int seconds) 
{
    int hours = seconds / 3600;
    int minutes = (seconds % 3600) / 60;
    seconds = seconds % 60;

    return twoDigitString(hours) + ":" + twoDigitString(minutes) + ":" + twoDigitString(seconds);
}

private String twoDigitString(int number) 
{
    if (number == 0)
    {
       return "00";
    }

    if (number / 10 == 0) 
    {
       return "0" + number;
    }

return String.valueOf(number);
}
希望它能帮助你。

我已经解决了“问题”

是我没有理解正确的时间

33240000对应于10:14NOT对应于11:11

我很抱歉问你这个没用的问题,问题在于我的口译


再次抱歉,谢谢你的帮助

你怎么断定是11点11分?11*60*60*1000>33240000。因为当我通过wireshark嗅探连接时,我会得到33240000的值,在应用程序上是11:11。另一个示例是12.04,转换为31560000。。。我不明白为什么11.11比12.04大,所以以后的时间的值更小?这个问题目前无法回答,因为我们不知道将时间映射到这些值的规则是什么。。。