3

我正在尝试将静态字符串(例如“07:02”)中的时间转换为毫秒。我正在查看文档TimeUnit并试图让我的字符串以毫秒为单位进行转换,但首先我有一个字符串,所以转换器函数不接受我猜的字符串,其次我有分钟和秒,所以我应该将它们转换为一个然后添加它们?似乎不是一个好方法?

TimeUnit.MILLISECONDS.convert(10L, TimeUnit.MINUTES)
4

3 回答 3

10

我刚刚检查了 TimeUnit 的文档。你可以这样做:

String time = "07:02";

long min = Integer.parseInt(time.substring(0, 2));
long sec = Integer.parseInt(time.substring(3));

long t = (min * 60L) + sec;

long result = TimeUnit.SECONDS.toMillis(t);
于 2013-07-23T11:47:43.303 回答
2

算法如下:

  1. 转换为整数(int 分钟,int 秒)
  2. 将分钟转换为秒(即分钟*60;)
  3. 将转换后的分钟添加到秒(即 int total = (minutes*60) + seconds;)
  4. 转换为毫秒(即毫秒 = 总计/1000)
于 2013-07-23T11:34:37.303 回答
2

我想出了以下方法。

用 ':' 分割时间并使用 TimeUnit 函数。

    int convertTime(String timeString) {
        String[] time = timeString.split ( ":" );
        int pos = time.length - 1;
        long res = 0;
        if( pos >=0 ){
            res = res + TimeUnit.SECONDS.toMillis( Long.parseLong( time[pos] ));
            pos --;
        }
        if( pos >=0 ){
            res = res + TimeUnit.MINUTES.toMillis( Long.parseLong( time[pos] ));
            pos --;
        }
        if( pos >=0 ){
            res = res + TimeUnit.HOURS.toMillis( Long.parseLong( time[pos] ));
            pos --;
        }
        return (int)res;
    }

代码更复杂,因为它应该与

10
1:10
01:10
1:10:20
于 2017-06-18T06:00:09.887 回答