小编AEF*_*AEF的帖子

在java中具有Date的特定模式的字符串

我有一个来自API的字符串,它给了我一个旅行的持续时间.

  • 有时它看起来像这样: PT5H27M
  • 有时它就像: PT5H
  • 有时它就像: PT27M

我想从中得到一个Date变量.

我使用模式和匹配器编写了一些函数,但是当我的旅行列表很长时,它需要很长时间.你能给我一个更好的方法吗?我在下面附上了我的代码:

final Pattern p = Pattern.compile("PT(\\d*)H*(\\d*)M*");
private long getDurationOfTrip(Pattern pattern,String duration){
    long durationOfTrip = 0 ;
    Matcher m = pattern.matcher(duration);

    if (m.find()){
        if (duration.contains("H")&&duration.contains("M"))
            durationOfTrip =  (Long.parseLong(m.group(1))*60) + Long.parseLong(m.group(2));
        else if (duration.contains("H")&& !duration.contains("M"))
            durationOfTrip =  (Long.parseLong(m.group(1))*60);
        else
            durationOfTrip = Long.parseLong(m.group(1));
    }

    return durationOfTrip;
}
Run Code Online (Sandbox Code Playgroud)

java duration date

2
推荐指数
1
解决办法
76
查看次数

标签 统计

date ×1

duration ×1

java ×1