我正在使用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时间,但是使用起来太复杂了。请至少指导我正确的方向。
提前致谢 Omkar Ghaisas
答案 0 :(得分: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);
}
添加一些天会是相同的,除了替换 - 用+
从Date对象中获取String
表示:
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();
}