有什么方法可以将这种格式的时间从2640 Hrs : 00 Mts转换为14:22:57 hrs

我尝试了很多方法,但似乎没有任何效果。我真的需要帮助

杰森阵列

{"ElapsedTime":"2642 Hrs : 59 Mts"}

我试过的代码

DateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
Date date = dateFormat.parse(jsonDate);
return dateFormat.format(date);


上面的代码抛出此异常

java.text.ParseException: Unparseable date: "2640 Hrs : 00 Mts" (at offset 4)


我正在使用Volley GsonRequest,并且能够解析它但无法格式化时间。

最佳答案

对我来说,这不是已知的时间格式,也没有“规范化”,这意味着它给您2642小时,不适合24小时制。

因此,我将进行手动解析,例如:

Pattern pattern = Pattern.compile("([0-9]*) Hrs : ([0-9]*) Mts");
Matcher matcher = pattern.matcher(jsonString);
int hours = Integer.parseInt(matcher.group(1));
int minutes = Integer.parseInt(matcher.group(2));
long time = (hours * 60) + minutes; // In minutes
time *= 60000; // In milliseconds
return dateFormat.format(new Date(time));


我没有测试过此代码,所以没有测试过YMMV,但是您应该明白这一点。

关于java - Java中的Json持续时间格式化问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25665519/

10-12 04:48