java两个string类型时间的比较

来源:百度知道 编辑:UC知道 时间:2024/05/07 08:10:01
程序经过一系列处理,返回到jsp页面上有两个string类型的时间值,一个值的形式为:“2008-05-09”,一个形式为“2008-5-13”,请问如何比较他们之间相差的天数?我的代码如下:
String s1="2008-05-09";
String s2="2008-5-13";
String[] str = s1.split("-");
int i = Integer.parseInt(str[1]);
int j = Integer.parseInt(str[2]);
String s3 = str[0] + "-" + i + "-" +j;
int res=s3.compareTo(s2);
System.out.println("res===="+res);为什么输出的是8,而不是4?要输出4该如何处理?

string计算不准确,最好转化为日期计算。

我写了一个函数:
//package com.color.program;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CompareTime {

public static void main(String[] args){
String t1 = "2008-05-09";
String t2 = "2008-5-13";

try {
System.out.println(CompareTime.getBetweenDays(t1, t2));
} catch (ParseException e) {
e.printStackTrace();
}
}

/**
* 取得两个时间段的时间间隔
* @author color
* @param t1 时间1
* @param t2 时间2
* @return t2 与t1的间隔天数
* @throws ParseException 如果输入的日期格式不是0000-00-00 格式抛出异常
*/
public static int getBetweenDays(String t1,String t2) throws ParseException{
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
int betweenDays = 0;
Date d1 =