0

我的 Joda Time 正在将我的代码中的数字从 9 更改为 1。

代码:

String name = getFileName();
BufferedReader reader = new BufferedReader(new FileReader(name));

DateTime firstDate = new DateTime();
DateTimeFormatter dtf = DateTimeFormat.forPattern("YYYYMMDD");
String date = dtf.print(firstDate);
System.out.println(date);

String fake;
while ((fake = reader.readLine()) != null) {
    String [] holder = fake.split(" ");

    firstDate = dtf.parseDateTime(holder[2]);
    System.out.println(holder[2]);
    System.out.println(firstDate);
    String useFirstDate = dtf.print(firstDate);
    System.out.println(useFirstDate);
    System.out.println("here");
    break;
}

输出:

Please input File Name
futuresmin
201306172 //System.out.println(date);
19870901  //System.out.println(holder[2]);
1987-01-01T00:00:00.000-05:00 //System.out.println(firstDate);
19870101  //System.out.println(useFirstDate);
here  //System.out.println("here");

我不知道这是一个普遍的问题,还是只有我一个人,但我在互联网上没有找到任何关于这个问题的信息。为什么 Joda Time 会从 19870901 更改为 19870101?

4

1 回答 1

3

“DD”是一年中的一天,而不是一个月中的一天,即“dd”。您的格式字符串不正确


在不相关的说明中,很难将您的输出与您的代码相关联。一般来说,最好将噪音保持在最低限度,并明确指出哪条输出线来自哪条代码,就像带有标题一样。

于 2013-06-21T16:14:33.290 回答