Java - 将指定数量的日期添加到日期

时间:2011-11-07 12:27:46

标签: java date calendar

有两个日期变量(Date1和Date2),格式为 YYYYMMDD 。我想要的是,根据Date1我想将Date2设置为下个月的第一天。例如:

如果Date1 = 20111120那么 我想将Date2设置为20111201

如果Date1 = 20111210那么 Date2应设置为20120101

无论Date1,Date2必须设置为下个月的第一天。我无法弄清楚如何做到这一点。

有谁可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

使用Calendar移至下个月的第一天,SimpleDateFormat从字符串解析为Date

calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DATE, 1);

答案 1 :(得分:1)

DateFormat format = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = Calendar.getInstance();
String date1 = "20111120";
calendar.setTime(format.parse(date1));
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DATE, 1);
String date2 = format.format(calendar.getTime()); // date2 is "20111201"

一些警告:

  • 如果你不止一次打电话,最好只实例化格式和日历一次。
  • SimpleDateFormat不是线程安全的,因此请确保为每个线程实例化一个SimpleDateFormat对象(例如,使用ThreadLocal)