如何使用另一个以前的日期作为参考来获取以前的日期
how to get a previous date using another previous date as referene
我正在尝试从 Gmail 收件箱中获取 10 天范围内的邮件。
我需要一种计算日期的方法,如下所示:
Date toDate = new Date();//for the first time it will be a present date
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -10);
Date fromDate = calendar.getTime();//This date will be 10 days before today.
在下一次迭代中,我想要 "fromDate" 到 "fromDate" 前 10 天的消息。
现在,
toDate = fromDate ; //and
fromDate = fromDate-10;
请告诉我如何实现。
我能够为第一个 iteration.I 编写内容,但在其余迭代中遇到困难。
那么from the "fromDate" to 10 days before "fromDate"
表示今天前20
天。
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.add(Calendar.DATE, -10); // 10 days before today
Date toDate = calendar.getTime();
// remember now your calendar instance 10 days older than today
// so reduce 10 more days equals to 20 days before today
calendar.add(Calendar.DATE,-10); // another 10 days before today
Date fromDate=calendar.getTime();
System.out.println("from date: "+fromDate);
System.out.println("to date: "+toDate);
您可以使用 Calendar
class 中的 setTime(Date d)
来将其初始化为您想要的任何日期。然后,如果您之前设置了过去的日期,则可以应用另一个偏移量
Date toDate = new Date();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -10);
Date fromDate = cal.getTime(): // 10 days back from now
稍后,要么重新使用 Calendar
实例(如果可用),要么创建一个用 fromDate
初始化的新实例。以下示例假设您只有 fromDate
:
Calendar cal = Calendar.getInstance();
cal.setTime(from); // which is 10 days back
cal.add(Calendar.DATE, -10);
Date fromFromDate = cal.getTime(): // now 20 days back
这是return过去日期的实用方法。
例如,如果您想获取 20 天之前的日期,则在此方法中将 20 作为输入传递。它会return你20天前的日期
public static Date getPastDate(int dayCount)
{
try
{
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int daysToSubstract = dayCount * (-1);
cal.add(Calendar.DATE, daysToSubstract);
Date dateBefore30Days = cal.getTime();
return dateBefore30Days;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
输入:20
输出: 2 月 10 日星期二 17:58:30 IST 2015
希望对您有所帮助
这就是您的代码在循环中的样子。
int numberOfIterations = 3;
Date toDate = new Date();
Date fromDate = null;
Calendar calendar = Calendar.getInstance();
for (int i = 0; i < numberOfIterations; i++) {
calendar.add(Calendar.DATE, -10);
fromDate = calendar.getTime();
System.out.println(fromDate + " - " + toDate);
toDate = fromDate;
}
我正在尝试从 Gmail 收件箱中获取 10 天范围内的邮件。
我需要一种计算日期的方法,如下所示:
Date toDate = new Date();//for the first time it will be a present date
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, -10);
Date fromDate = calendar.getTime();//This date will be 10 days before today.
在下一次迭代中,我想要 "fromDate" 到 "fromDate" 前 10 天的消息。 现在,
toDate = fromDate ; //and
fromDate = fromDate-10;
请告诉我如何实现。 我能够为第一个 iteration.I 编写内容,但在其余迭代中遇到困难。
那么from the "fromDate" to 10 days before "fromDate"
表示今天前20
天。
Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime()); calendar.add(Calendar.DATE, -10); // 10 days before today Date toDate = calendar.getTime(); // remember now your calendar instance 10 days older than today // so reduce 10 more days equals to 20 days before today calendar.add(Calendar.DATE,-10); // another 10 days before today Date fromDate=calendar.getTime(); System.out.println("from date: "+fromDate); System.out.println("to date: "+toDate);
您可以使用 Calendar
class 中的 setTime(Date d)
来将其初始化为您想要的任何日期。然后,如果您之前设置了过去的日期,则可以应用另一个偏移量
Date toDate = new Date();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -10);
Date fromDate = cal.getTime(): // 10 days back from now
稍后,要么重新使用 Calendar
实例(如果可用),要么创建一个用 fromDate
初始化的新实例。以下示例假设您只有 fromDate
:
Calendar cal = Calendar.getInstance();
cal.setTime(from); // which is 10 days back
cal.add(Calendar.DATE, -10);
Date fromFromDate = cal.getTime(): // now 20 days back
这是return过去日期的实用方法。
例如,如果您想获取 20 天之前的日期,则在此方法中将 20 作为输入传递。它会return你20天前的日期
public static Date getPastDate(int dayCount)
{
try
{
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int daysToSubstract = dayCount * (-1);
cal.add(Calendar.DATE, daysToSubstract);
Date dateBefore30Days = cal.getTime();
return dateBefore30Days;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
输入:20
输出: 2 月 10 日星期二 17:58:30 IST 2015
希望对您有所帮助
这就是您的代码在循环中的样子。
int numberOfIterations = 3;
Date toDate = new Date();
Date fromDate = null;
Calendar calendar = Calendar.getInstance();
for (int i = 0; i < numberOfIterations; i++) {
calendar.add(Calendar.DATE, -10);
fromDate = calendar.getTime();
System.out.println(fromDate + " - " + toDate);
toDate = fromDate;
}