gpt4 book ai didi

java - 为什么compareTo不使用日期返回结果

转载 作者:行者123 更新时间:2023-12-02 01:24:47 24 4
gpt4 key购买 nike

我的日期格式为“yyyyMMdd”我使用这两个函数将它们转换为日期:

第一个是将“yyyyMMdd”转换为“yyyy-MM-dd”

private static String converteDate(String inputString) {

SimpleDateFormat fromUser = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");

String reformattedStr = null;
try {
reformattedStr = myFormat.format(fromUser.parse(inputString));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return reformattedStr;
}

第二个函数是将“yyyy-MM-dd”转换为日期类型:

public static Date convertToDate(String receivedDate) throws ParseException {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = formatter.parse(receivedDate);
return date;
}

然后我需要使用日期之间的比较来对日期进行排序,所以我使用了 CompareTo 函数:

public int compareTo(Personne personne) {
int res = 0;
Personne other = personne;
// Conversion of Dates from String to Dates

Date otherDate = null;
try {
otherDate = convertToDate(other.getDA_PRM_CTR_ORDER());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date entreePersonne = null;
try {
entreePersonne = convertToDate(this.DA_PRM_CTR_ORDER);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

res = entreePersonne.compareTo(otherDate);

return res;
}

这不起作用,它会返回这个

Thread.dispatchUncaughtException(Throwable) line: not available

this

编辑:

正如@MLem所说

当我调试时,它不会转换为日期格式并传递给异常:

this the given trace

这真的很奇怪,因为函数 ConvertToDate 会正常重新调整日期格式。

最佳答案

这是一个 NullPointerException,请查看堆栈跟踪以了解它发生在哪里。

请注意,您的 try/catch 是危险的,如果引发异常,您的 otherDate 或 entreePersonne 变量将为 null,这是导致 NullPointerException 的可能原因之一。

你的compareTo(Personne)应该抛出ParseException,或者有一个记录的行为,以防日期不可解析。

编辑:我注意到在编辑后您没有使用 ConverteDate 方法,因此您有一个 yyyyMMdd 格式的输入日期,并且您尝试使用 yyyy-MM-dd 格式解析它,因此出现 ParseException。

关于java - 为什么compareTo不使用日期返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57593170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com