0

我正在使用 joda time 来比较一组日期。我的目标是遍历数组并查看缺少哪些日期。我计划通过将数组中的第一个变量分配给一个变量来完成此操作DateTime,然后计算数组和日期时间。如果DateTimeequals array[x],则 theDateTime和数组都将加一。如果DateTime不等于数组(意味着缺少日期),DateTime则将递增 1 并打印出日期,直到DateTime等于Array[x]。但目前,我只是想得到它,以便第一个日期(在持有人 [2] 处)是DateTime firstDate.

我的问题是如何制作它以便我可以分配holder[2]DateTime firstDate?简单地分配firstDateholder[2]返回错误。

DateTime firstDate = new DateTime();
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyyMMDD");
String date = dtf.print(firstDate);

String fake;

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

    firstDate = holder[2]; //******the issue******
    System.out.println(firstdate);

}

关于我的代码的重要事项:

  1. 我正在使用 aBufferedReader从一个非常大的文件(20gb)中获取信息,所以我从文本文件中逐行读取(并且每一行holder[2]都是日期)

  2. 文本文件中日期的格式是yyyymmdd ,我想将它的字符串DateTimeDateTime)。

  3. 我已正确设置 Joda Time

4

1 回答 1

1

如果您拥有的holder[2]是格式为“yyyyMMDD”的日期的字符串表示形式,那么您需要使用您定义的格式化程序:

firstDate = dtf.parseDateTime(holder[2]);
于 2013-06-21T14:44:57.323 回答