仅在java中格式化时间-从文本文件

仅在java中格式化时间-从文本文件,java,Java,我想从java文本中读取时间,但当它以(hh:mm)格式读取时间时,如下例所示: 2014年4月15日和4月12日 还有我的java代码将字符串转换为数据格式 DateFormat timeFormat=new SimpleDateFormat("HH:mm"); DateFormat dateFormat=new SimpleDateFormat("dd.MM.yyyy"); . . flight.setArrTime((Date) timeFormat.parse((String)

我想从java文本中读取时间,但当它以(hh:mm)格式读取时间时,如下例所示:

2014年4月15日和4月12日

还有我的java代码将字符串转换为数据格式

DateFormat timeFormat=new SimpleDateFormat("HH:mm");
DateFormat dateFormat=new SimpleDateFormat("dd.MM.yyyy");
 .
 .
flight.setArrTime((Date) timeFormat.parse((String)    strTokenizer.nextElement()));
flight.setFlightDate((Date) dateFormat.parse((String) strTokenizer.nextElement()));
输出为:

Thu Jan 01 04:15:00 EET 1970
Thu Dec 04 00:00:00 EET 2014
它给出了一个长格式的日期,而我只想取时区(04:15)


我该怎么办

您必须将日期格式化为:

String s1 = "04:15";
String s2 = "04.12.2014";
DateFormat timeFormat=new SimpleDateFormat("HH:mm");
DateFormat dateFormat=new SimpleDateFormat("dd.MM.yyyy");

String newDate1 = timeFormat.format(timeFormat.parse((s1)));
String newDate2 = dateFormat.format(dateFormat.parse((s2)));

如果我猜对了,你有

class Flight{
    Date arrTime;
    Date flightDate;
    public setArrTime(Date date){
    //yourcode
    }
    public setFlightDate(Date date){
    //yourcode
    }

}
DateFormat不是存储日期的特定方式,而是如何将日期作为字符串输出。因此,如果您只想输出到达时间,您可以编写

System.out.println("Der Flug flieg am "+ dateFormat.format(flightTime));
System.out.println("Der Flug kommt um "+ timeFormat.format(arrTime)+ " Uhr an.");
但是,尽管你的信息是时间和日期,你可以把它们放在同一个日期,节省一些内存

编辑:
也许您想更清楚地说明您想要实现什么,因为您的代码完成了您想要的一切。它可能不会产生期望的输出,但是你没有告诉我们你的输出来自哪里。我主要是舒尔,这就是问题所在

我猜这是因为你把DateFormat解析回最新的格式,或者是你在创建输出时遇到了问题。你可以只添加两个日期,使用这个丑陋的黑客:我建议你把时间和日期放在同一个日期对象中,然后输出你想要的部分。谢谢朋友,但我需要阅读文本时间和日期。向我们展示创建输出的代码。约会总是有“长格式”的,如果你不强迫他,以其他方式表现出来,他会保持这种方式。是的,这是正确的。我有航班等级和日期到达时间,日期飞行日期。我想读像04:12这样的文本数据;04.12.2014. 我想用Java语言存储,你能写这个格式吗?flight.setArrTime((日期)timeFormat.parse((字符串)strTokenizer.nextElement());代码是正确的,如果要在类中存储日期,只需更改输出方法。另一个想法是存储所需的字符串而不是日期。这也会起作用,但不会那么好:)我读的不是字符串,因为这次我会计算。我想读时间