0

我正在使用 jxl api 读取 android 中的 excel 文件。当我从 excel 中获得类似“30/11/2012”的日期时,LabelCell 输出显示我的日期为“11/30/12”。

1)我需要在读取excel文件时以dd/MM/yyyy格式获取输出,因为它在excel中以这种方式存在,所以我不想不必要地将它转换成另一种格式。怎么做 ?

2)在读取 excel 列的日期后,我生成了 2 个变量,一个具有 excel 日期 - 20 天(我们称之为 excelMinus20)和另一个 excel 日期 + 10 天(我们称之为 excelPlus10。现在,我想检查一下此外,如果当前系统日期(智能手机的日期)>= excelMinus20 并且当前系统日期<= excelPlus10。

如何使用 java.text.Date 来完成这一切?我也尝试过使用 joda time,但是使用起来太复杂了。请至少指导我正确的方向。

在此先感谢 Omkar Ghaisas

4

1 回答 1

1

要从文本格式解析您的日期:

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse("30/11/2012");

更多信息 :SimpleDateFormat doc

要从您的日期中减去天数:

public static Date substractDays(Date date, int days)
{
    long millis = date.getTime();
    long toSubstract = days * 1000 * 60 * 60 * 60 * 24;
    //                       1milli  1s   1m   1h   1d
    return new Date(millis-toSubstract);
}

添加一些天将是相同的,除了将 - 替换为 +

String要从Date 对象中取回表示:

DateFormat formatter = new SimpleDateFormat("...pattern...");
String formatedDate = formatter.format(date.getTime());

编辑:

您还可以使用您建议的方法进行日期加/减:

public static Date substractDays(Date date, int days)
{
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.DATE, -20 /*or +10*/); 
    return calendar.getTime();
}

如果要检查日期是否在区间内,则:

public static boolean isInInterval(Date date, Date from, Date to)
{
    return date.getTime()<to.getTime() && date.getTime() > from.getTime();
}
于 2012-09-16T11:07:27.937 回答