Java - добавление указанного числа дат к дате - PullRequest
1 голос
/ 07 ноября 2011

В формате ГГГГММДД есть две переменные даты (Дата1 и Дата2). То, что я хочу, в соответствии с Date1 я хочу установить Date2 на следующий день первого месяца. Например:

Если Дата1 = 20111120, то Я хочу установить Date2 на 20111201

Если Дата1 = 20111210, то Дата2 должна быть установлена ​​на 20120101

Независимо от даты1, дата2 должна быть установлена ​​на следующий день первого месяца. Я не могу понять, как это сделать.

Может ли кто-нибудь помочь мне в этом вопросе.

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

используйте Calendar для перехода на первое число следующего месяца, SimpleDateFormat для анализа строки: Date

calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DATE, 1);
1 голос
/ 07 ноября 2011
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...