【发布时间】:2017-03-23 18:15:22
【问题描述】:
我有一个“HH:mm”格式的输入字符串,其中时间分隔符根据区域设置(例如,美国的“10:45”或意大利的“10.45”)。我需要将其转换为分钟数。
这是我想出的:
String timeSeparator = getTimeSeparator(locale);
String[] duration = durationString.split(Pattern.quote(timeSeparator));
int minutes = Integer.valueOf(duration[0])*60 + Integer.valueOf(duration[1]);
getTimeSeparator方法取自https://stackoverflow.com/a/7612009/7753225
有没有更简单的方法?例如使用 `java.time'。
【问题讨论】:
-
您可以删除 Integer.valueOf() 因为您甚至没有使用 Integer,(即使那样,它也会被自动装箱)。我认为 JodaTime 有这个选项。从日期时间获取分钟/秒/无论什么
-
为什么不忽略分隔符呢?
int minutes = Integer.parseInt(durationString.substring(0, 2)) * 60 + Integer.parseInt(durationString.substring(3))
标签: java time java-8 locale separator