Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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将1d2h3m转换为毫秒_Java - Fatal编程技术网

Java将1d2h3m转换为毫秒

Java将1d2h3m转换为毫秒,java,Java,我正在尝试编写一个程序,可以在其中插入一个字符串,例如 5d2h7m (5 days 2 hours 7 minutes) 这需要时间 System.currentTimeMillis(); 加上5天2小时7分钟得到一个新值,然后保存。以后需要时,我可以检查节省的时间,看看它是否已经过去了 我对如何将5天2小时7分钟转换为毫秒感到困惑 有没有一个通用的Java方法是我缺少的 编辑:我试图将字符串转换为毫秒,而不是相反 有没有一个通用的Java方法是我缺少的 不,不是在JDK中。您必须自己解析

我正在尝试编写一个程序,可以在其中插入一个字符串,例如

5d2h7m (5 days 2 hours 7 minutes)
这需要时间

System.currentTimeMillis();
加上5天2小时7分钟得到一个新值,然后保存。以后需要时,我可以检查节省的时间,看看它是否已经过去了

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

有没有一个通用的Java方法是我缺少的

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

有没有一个通用的Java方法是我缺少的


不,不是在JDK中。您必须自己解析字符串(可能使用),然后自己执行适当的乘法和加法。

以下是我为解决问题所做的: (timeArgs是从问题中的字符串中拆分出来的字符串[])

长天数=0;
长时间=0;
长分钟=0;
对于(int x=0;x
你必须发布代码才能获得帮助,发布要求和显示没有尝试/努力只是要求其他人免费为你做工作。你可以使用新软件包来实现这一点。看看Duration和Period。然后做与复制相反的事情,就是这么简单,你必须展示一些努力来获得现有代码的帮助。我已经解析了字符串,这部分很简单。时间->毫秒是我在查找方法时遇到的问题。“timeArgs是一个字符串[],它是从问题中的字符串中拆分出来的”如何?展示那部分。同时,去除不必要的压痕。祝贺你的第一个回答!可能值得一提的是:
时间单位的使用非常方便。实际上,一天中的毫秒数是可变的(DST,闰秒),但如上所述,它是一个常量:
1000L*60*60*24
。其他的也一样。尽管如此,
TimeUnit
仍然存在,重用它可以避免诸如遗漏一个
*60
之类的令人尴尬的错误。
        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);