Java 将DateTime设置为特定值

Java 将DateTime设置为特定值,java,jodatime,Java,Jodatime,我使用joda time来比较一组日期。我的目标是遍历数组,看看缺少哪些日期。我计划通过将数组中的第一个变量分配给DateTime变量,然后计算数组和日期时间来完成这项工作。如果DateTime等于array[x],则DateTime和数组都将增加1。如果DateTime不等于数组(意味着缺少一个日期),DateTime将递增一,并打印日期,直到DateTime等于array[x]。不过目前,我只是想得到它,以便第一个日期(在holder[2])是DateTime firstDate的值 我的问

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

我的问题是如何设置它,以便将
持有者[2]
分配给
日期时间firstDate
?只需将
firstDate
分配给
holder[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);

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

  • 我使用一个
    BufferedReader
    从一个非常大的文件(20gb)中获取信息,因此我逐行从文本文件中读取信息(每行
    holder[2]
    是日期)

  • 文本文件上的日期格式为yyyymmdd,我想将其字符串与
    DateTime
    字符串进行比较(因此,我需要做的第一件事是将数组的第一个值赋给
    DateTime
    ,这恰好是我的问题)

  • 我已正确设置Joda时间


  • 如果
    holder[2]
    中包含的是格式为“yyyyymmdd”的日期字符串表示形式,则需要使用您定义的格式化程序:

    firstDate = dtf.parseDateTime(holder[2]);
    

    您的格式只包含年、月和日期。为什么不使用
    LocalDate