从java中的文本文件中读取时间

AKW*_*ARD 1 java simpledateformat

我试图在java中编写一些代码来读取文本文件,但是当它以(hh:mm)格式读取时间时,如下例所示:

6:30 14:30
Run Code Online (Sandbox Code Playgroud)

并且有我的java代码将字符串转换为Data formate

DateFormat formatter = new SimpleDateFormat("hh:mm");
strLine = br.readLine();
strLine = strLine.trim();
tokens2 = strLine.split(" ");
System.out.println((Date)formatter.parse(tokens2[0]));
Run Code Online (Sandbox Code Playgroud)

输出将是:

Thu Jan 01 06:30:00 AST 1970
Run Code Online (Sandbox Code Playgroud)

它将在长期形成日期,而我想要采取时区(06:30).我该怎么办 ?任何建议.

编辑:Joda时间通过此代码解决的问题:

LocalTime.parse(tokens2[0]);
Run Code Online (Sandbox Code Playgroud)

这只是需要时间

Jon*_*eet 5

首先,您的时间模式是错误的 - 您应该使用,HH:mm因为您在示例中使用了24小时制.

其次,你正在解析一个Date.A Date只是一个瞬间:它不知道时区,日历,你是否只对时间,日期等感兴趣.

第三,你看到的是输出,因为你基本上只是在打电话Date.toString().

Java中没有类型只表示"一天中的时间"(顺便说一下,它与时区完全不同).你可以格式化 a Date只包括时间部分,但如果你想这样做,我强烈建议使用UTC的时区来避免任何可能的DST问题.

更好的解决方案是使用Joda Time,它具有LocalTime适合您情况的类型.你可以解析那个(DateTimeFormatter.parseLocalTime),然后适当地使用它,然后根据需要格式化它(再次只是一次).