当我使用简单的日期格式解析一些日期(次)时,下面的代码比预期的时间多出五个小时。我正在解析毫秒到字符串。我正在解析一些媒体文件的持续时间。例如,当我的媒体文件实际上是10分钟时,它提供5小时10分钟。有什么问题?
public static String formatTime(String time) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("H:mm:ss");
Date date = new Date(Long.parseLong(time));
return simpleDateFormat.format(date);
答案 0 :(得分:1)
您不应该使用Date
来表示持续时间。如果Time
是媒体文件的持续时间(以毫秒为单位),那么Date date = new Date(Long.parseLong(Time));
将构建一个日期,该日期是1970年1月1日00:00之后的许多毫秒,在您的情况下将是那天00:10。
我担心您必须手动将您的毫秒分解为小时,分钟和秒,然后使用String.format("%d:%02d:%02d",hours,minutes,seconds)
对其进行格式化。
答案 1 :(得分:-1)
我用这种方式工作正常
public static String FormatTime(String Time) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss");
Date d=new Date(Long.parseLong(Time));
String formatted=simpleDateFormat.format(d);
if (Long.parseLong(Time) > 3600000&&Long.parseLong(Time)<7200000 ) {
formatted=String.format("%d %s",1,formatted);
}
else if (Long.parseLong(Time)>=7200000&&Long.parseLong(Time)<10800000 ){
formatted=String.format("%d %s",2,formatted);
}
return formatted;
}