使用字符串操作在java中转换时间

使用字符串操作在java中转换时间,java,Java,如何在java中将2m0s转换为00:02:00?两者都是字符串 我尝试了字符串和字符操作,但没有成功 我用PHP做了这个函数 但是我需要转换成java preg_match_all('/(\d+)([HMS])/', $sections[2], $parts, PREG_SET_ORDER); $units = array('H' => 'hours', 'M' => 'minutes', 'S' => 'seconds'); foreach($par

如何在java中将
2m0s
转换为
00:02:00
?两者都是字符串

我尝试了字符串和字符操作,但没有成功

我用PHP做了这个函数

但是我需要转换成java

    preg_match_all('/(\d+)([HMS])/', $sections[2], $parts, PREG_SET_ORDER);
    $units = array('H' => 'hours', 'M' => 'minutes', 'S' => 'seconds');
    foreach($parts as $part)
    {
      $result[$units[$part[2]]] = $part[1];
    }

当然,您可以使用regex实现这一点,但更简单的解决方案是使用该语言的dateapi

对于Java,这意味着使用
SimpleDataFormat

String input = "2m0s";
SimpleDateFormat parseFormat = new SimpleDateFormat("mm'm'ss's'");
Date date = parseFormat.parse(input);
SimpleDateFormat displayFormat = new SimpleDateFormat("mm:ss");
String output = displayFormat.format(date);
System.out.println(input + " -> " + output);
它将打印:
2m0s->02:00
到您的控制台。好在像
“2m75s”
这样的输入会被转换成
“03:15”


有关如何构造模式来解析字符串或格式化日期的更多信息,请参见此处:

不要自己滚动。Joda时间库可以解析并生成这些字符串。ISO 8601标准定义了该格式。查看ISO 8601的维基百科页面,查找持续时间部分。

向我们展示您的尝试,然后我们可以帮助您解决代码问题。那么您的Java代码有什么问题?