如何将持续时间转换回毫秒

发布于 2025-01-23 16:34:34 字数 160 浏览 0 评论 0原文

目前,我一直在使用DurationFormatutils将曲目中的Millis转换为HH:MM:SS,但是我想允许用户使用此格式来寻求曲目,例如,它们将输入: '-Seek HH:MM:SS或MM:SS',我想将这段时间转换为毫秒...是否有内置的Java方法可以这样做?还是我必须创建自己的方法来转换它?

Currently I have been using DurationFormatUtils to convert the Millis in a track into HH:mm:ss, but I want to allow the user to seek the track using this format, for example they would type:
'-seek HH:mm:ss or mm:ss' and I want to convert that time back into milliseconds... Are there any built in Java methods to do this? Or would I have to create my own method to convert it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

£烟消云散 2025-01-30 16:34:34

你可以这样做。

首先,定义dateTimeFormatter实例。

DateTimeFormatter dtf =
        DateTimeFormatter.ofPattern("H:mm:ss");
  • h - 一两个数字的24小时时间
  • mm - 分钟
  • ss - 秒

处理缺少小时的时间,您可以检查是否是否a结肠来自第三个角色。如果是这样,那么时间可以按以上的时间解析,否则,预先00小时。我选择把它放在兰伯达中。

Function<String,String> adjust = time -> time.indexOf(":",3) >= 0 
            ? time : "00:"+time;

将它们放在一起。

String[] times = { "3:49:44", "12:30" };
for (String time : times) {
    int millis = dtf.parse(adjust.apply(time))
          .get(ChronoField.MILLI_OF_DAY);
    System.out.println(millis);
}

打印

13784000
750000

查看 java.Time 包含更多日期/时间类别的软件包。

You can do it like this.

First, define a DateTimeFormatter instance.

DateTimeFormatter dtf =
        DateTimeFormatter.ofPattern("H:mm:ss");
  • H - one or two digits of 24 hour time
  • mm - minutes
  • ss - seconds

To handle absence of the hours you can check to see if a colon exists from the 3rd character on. If it does, then the time can be parsed as is, otherwise, prepend 00 hours. I chose to put it in a lambda.

Function<String,String> adjust = time -> time.indexOf(":",3) >= 0 
            ? time : "00:"+time;

Putting it all together.

String[] times = { "3:49:44", "12:30" };
for (String time : times) {
    int millis = dtf.parse(adjust.apply(time))
          .get(ChronoField.MILLI_OF_DAY);
    System.out.println(millis);
}

prints

13784000
750000

Check out the java.time package for more date/time classes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文