将持续时间字符串解析为毫秒

将持续时间字符串解析为毫秒,第1张

将持续时间字符串解析为毫秒

使用a

Pattern
是一种合理的方法。但是,为什么不使用单个字段来获取所有四个字段呢?

Pattern p = Pattern.compile("(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s");

然后使用索引组提取。

编辑:

基于您的想法,我最终编写了以下方法

private static Pattern p = Pattern        .compile("(\d+)d\s+(\d+)h\s+(\d+)m\s+(\d+)s");public static long parseDuration(String duration) throws ParseException {    Matcher m = p.matcher(duration);    long milliseconds = 0;    if (m.find() && m.groupCount() == 4) {        int days = Integer.parseInt(m.group(1));        milliseconds += TimeUnit.MILLISECONDS.convert(days, TimeUnit.DAYS);        int hours = Integer.parseInt(m.group(2));        milliseconds += TimeUnit.MILLISEConDS     .convert(hours, TimeUnit.HOURS);        int minutes = Integer.parseInt(m.group(3));        milliseconds += TimeUnit.MILLISECONDS.convert(minutes,     TimeUnit.MINUTES);        int seconds = Integer.parseInt(m.group(4));        milliseconds += TimeUnit.MILLISECONDS.convert(seconds,     TimeUnit.SECONDS);    } else {        throw new ParseException("Cannot parse duration " + duration, 0);    }    return milliseconds;}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5134076.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-17
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存