Java将1d2h3m转换为毫秒

时间:2016-07-07 17:37:33

标签: java

我试图编写一个可以插入字符串的程序,例如

5d2h7m (5 days 2 hours 7 minutes)

将需要

System.currentTimeMillis();

并添加5天2小时7分钟以获得新值,然后保存。稍后需要时,我可以检查已保存的时间,看它是否已经过去了。

我对如何将5天2小时7分钟转换为毫秒感到困惑。

我是否缺少一种通用的Java方法?

编辑:我试图将字符串转换为毫秒,而不是相反。

2 个答案:

答案 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,然后自己进行适当的乘法和加法。