eur*_*ica 0 java string compare date compareto
我已经阅读了日期函数,但我不能想出解决问题的最佳方法.
我有几个数据库的日期String,我想将它与当前日期进行比较.我正在使用compareTo,但使用此功能有一个问题,我想这是因为我在比较字符串.
这是我的功能:
public int dateCompare(String today, String date2){
return today.compareTo(date2);
}
Run Code Online (Sandbox Code Playgroud)
当我在样本日期使用它时:
dateCompare("04/19/2013","04/18/2013");
Run Code Online (Sandbox Code Playgroud)
它返回1,当我将第一个参数的值更改为"04/20/2013"它仍然返回1.
请帮忙...
故障在于,
public int dateCompare(String today, String date2){
return today.compareTo(date2);
}
Run Code Online (Sandbox Code Playgroud)
您将此视为dateComparison,但请查看方法参数String,String.
所以你实际上在比较两个字符串.
你应该首先将这些字符串转换为日期......
喜欢,
public Date parseDate(String dateStr) {
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
return df.parse (dateStr);
}
public int dateCompare(String today, String date2){
return (parseDate(today)).compareTo(parseDate(date2));
}
Run Code Online (Sandbox Code Playgroud)
编辑:
修改为多种格式:
public Date parseDate(String dateStr, String parsingFormat) throws SomeParsingException {
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
return df.parse (dateStr);
}
public Date parseDate (String dateStr) throws SomeException {
Date d1 = null;
try {
d1 = parseDate(dateStr, "MM/dd/yyyy");
} catch (SomeParsingException ex) {
try {
d1 = parseDate(dateStr, "MM-dd-yyyy");
} catch (SomeParsingException ex) {
try {
d1 = parseDate(dateStr, "MM.dd.yyyy");
} catch(SomeParsingException ex) {
throw SomeException ("Unparseable date");
}
}
}
return d1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |