将DateTime设置为某个值

时间:2013-06-21 14:37:44

标签: java jodatime

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

我的问题是如何制作,以便holder[2]分配给DateTime 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);

}

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

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

  2. 文本文件上Date的格式是yyyymmdd,我想将其字符串与DateTime的字符串进行比较(因此我需要做的第一件事是分配第一个值数组到DateTime恰好是我的问题。)

  3. 我已正确设置Joda Time

1 个答案:

答案 0 :(得分:1)

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

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