作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我获得的运行配速转换为字符串格式(例如:“5:00”表示 5 分钟/英里)。 (我正在将分钟/英里转换为分钟/公里)。
所以这就是我正在做的:
String milePace = "05:00";
DateFormat sdf = new SimpleDateFormat("mm:ss");
Date date = sdf.parse(milePace);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
long mileTime = cal.getTimeInMillis();
long kmPace = Math.round(mileTime * 0.623712);
cal.setTimeInMillis(kmPace);
不幸的是,这对我来说有意义,但不起作用。
0.623712 将是转换单位并且确实有效(只要我关心)。
当我检查 mileTime
的值时,我得到 18240000。据我所知,这就是问题所在,因为该值应为 240000(即 4 分钟 * 60 秒 * 1000)
是代码有问题还是 cal 函数中有什么东西可以给我额外的 18000000 毫秒?
提前致谢!
最佳答案
getTimeInMillis()
返回自 1970 UTC 以来的毫秒数。它会受到解析器的时区以及解析器决定用于您的输入的日期的影响。
我建议您使用 Joda Time并将该值解析为 Period
。
示例代码:
import org.joda.time.*;
import org.joda.time.format.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
String text = "05:00";
PeriodFormatter formatter = new PeriodFormatterBuilder()
.minimumPrintedDigits(2)
.appendMinutes()
.appendSeparator(":")
.appendSeconds()
.toFormatter();
Period milePeriod = formatter.parsePeriod(text);
long mileMillis = milePeriod.toStandardDuration().getMillis();
long kmMillis = Math.round(mileMillis * 0.623712);
PeriodType minutesSeconds = PeriodType.time()
.withMillisRemoved()
.withHoursRemoved();
Period kmPeriod = new Period(kmMillis, minutesSeconds);
System.out.println(formatter.print(kmPeriod)); // Prints 03:07
}
}
关于java - 转换运行配速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624372/
我和我的 friend 正在使用 turtle 开发 Python 游戏。我们的问题在定义 turtle 的部分。我们正在尝试加快每只 turtle 的速度,但当我们这样做时,默认速度运行。为什么会出
我是一名优秀的程序员,十分优秀!