从 java 中的文件读取时间

Read a time from file in java

我正在为大学做一份工作,我必须从文件 a 中读取该格式的许多行:

3ld4R7 4:273475

一切正确,每一行代表一首歌,第一串是歌名,第二串是时长,第三串是流行度。但是,我暂时不知道具体可以选择什么类型。然后,我必须对时间(分钟、秒、小时)进行许多操作。我不知道 Java 库中是否有 class 用于时间之类的东西。感谢任何帮助!!!

Java有这样的图书馆,而且不止一个。 尝试 java.util.Date 库和 SimeplDateFormatter class 根据字符串以特定方式解析日期时间对象。

例如:

DateFormat formatter = new SimpleDateFormat("MM/dd/yy h:mm a");
Date date = (Date)formatter.parse(date)

java.time.Duration

java.time 的 Duration class,现代 Java 日期和时间 API,是 class 的 - 好吧,这个名字已经说明了。不幸的是,将 4:27 之类的字符串解析为 Duration 并不是内置的。我的首选技巧是:

    String durationString = "4:27";
    
    String isoString = durationString.replaceFirst("^(\d+):(\d+)$", "PTMS");
    Duration dur = Duration.parse(isoString);
    
    System.out.println(dur);

输出:

PT4M27S

读为4分27秒的时间段。 Duration.parse 方法需要一种称为 ISO 8601 的格式,这是一种国际标准。当我们打印 Duration 时隐式调用 Duration.toString(),返回 ISO 8601。它就像你看到的那样,PT4M27S。所以在我的代码中,我做的第一件事就是将您的输入从文件转换为 ISO 8601 格式,然后我对其进行解析。

如果您想格式化显示的持续时间,例如以与文件中相同的格式返回:

    System.out.format("%d:%02d%n", dur.toMinutes(), dur.toSecondsPart());

4:27

链接