如何解决用java从文件中读取时间
我正在为大学做一份工作,我必须从文件 a 中读取该格式的许多行:
3ld4R7 4:27 3475
一切都正确,每一行代表一首歌曲,第一个字符串是名称,第二个字符串是持续时间,第三个字符串是流行度。但是,我不知道我可以选择什么类型的时间。然后,我必须对时间(分钟、秒、小时)进行许多操作。我不知道 Java 库中是否有诸如 Time 之类的类。感谢任何帮助!!!
解决方法
java.time.Duration
java.time 的 Duration
类,现代 Java 日期和时间 API,是用于的类——嗯,名字已经说明了。不幸的是,将 4:27
之类的字符串解析为 Duration
不是内置的。我的首选技巧是:
String durationString = "4:27";
String isoString = durationString.replaceFirst("^(\\d+):(\\d+)$","PT$1M$2S");
Duration dur = Duration.parse(isoString);
System.out.println(dur);
输出:
PT4M27S
阅读时间为 4 分 27 秒。 Duration.parse
方法需要一种称为 ISO 8601 的国际标准格式。而 Duration.toString()
,在我们打印 Duration
时隐式调用,产生 ISO 8601。就像你看到的一样,PT4M27S
。所以在我的代码中,我做的第一件事是将您的输入从文件转换为 ISO 8601 格式,然后我对其进行解析。
如果要格式化显示的持续时间,例如恢复为与文件中相同的格式:
System.out.format("%d:%02d%n",dur.toMinutes(),dur.toSecondsPart());
4:27
链接
- Oracle tutorial: Date Time 解释如何使用 java.time。
- Wikipedia article: ISO 8601
Java 中有这样一个库,而且不止一个。 尝试使用 java.util.Date 库和 SimeplDateFormatter 类根据字符串以特定方式解析日期时间对象。
例如:
DateFormat formatter = new SimpleDateFormat("MM/dd/yy h:mm a");
Date date = (Date)formatter.parse(date)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。