有什么方法可以将这种格式的时间从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/