2011-11-07 108 views
1

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

如果日期1 = 20111120然后 我要日期2设置为20111201

如果日期1 = 20111210然后 的日期2应设置为20120101

不管日期1的日期2必须是设置到下个月的第一天。我不知道如何去做。

请问谁能帮我解决这个问题。

回答

3

使用Calendar移动到下月一日,SimpleDateFormat解析从字符串到Date

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

非常感谢您Jigar :) – user1033702

+0

欢迎您将其标记为接受的(因为它是:)) –

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的)
+0

谢谢安德拉斯这真的很有帮助。 – user1033702