我试图编写一个可以插入字符串的程序,例如
5d2h7m (5 days 2 hours 7 minutes)
将需要
System.currentTimeMillis();
并添加5天2小时7分钟以获得新值,然后保存。稍后需要时,我可以检查已保存的时间,看它是否已经过去了。
我对如何将5天2小时7分钟转换为毫秒感到困惑。
我是否缺少一种通用的Java方法?
编辑:我试图将字符串转换为毫秒,而不是相反。
答案 0 :(得分:1)
这是我为解决问题所做的工作: (timeArgs是一个String [],它是从问题中的字符串中分割出来的)
long days = 0;
long hours = 0;
long minutes = 0;
for (int x = 0; x < timeArgs.length; x++) {
if (timeArgs[x].contains("d")) {
days = Long.parseLong(timeArgs[x].replace("d", ""));
break;
} else if (timeArgs[x].contains("h")) {
hours = Long.parseLong(timeArgs[x].replace("h", ""));
break;
} else if (timeArgs[x].contains("m")) {
minutes = Long.parseLong(timeArgs[x].replace("m", ""));
break;
}
}
long millis = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(days) + TimeUnit.HOURS.toMillis(hours) + TimeUnit.MINUTES.toMillis(minutes); // Current time plus other values
System.out.print("millis is " + millis);
答案 1 :(得分:0)
我是否缺少一个通用的Java方法?
不,不在JDK中。您必须自己解析字符串,可能使用java.util.regex
,然后自己进行适当的乘法和加法。