Проблема с приращением даты - PullRequest
1 голос
/ 28 марта 2012

Я могу увеличивать и уменьшать дату в своем приложении Blackberry.

Проблема возникает, когда я изменяю некоторые данные во всплывающем окне и нажимаю кнопку «Далее», дата остается неизменной без увеличения, однако длинное значение совпадает с увеличенным значением.

Calendar calendar = Calendar.getInstance(); 
String dateFormat = compareDate; //mar 28,2012-compare date value
String m = dateFormat.substring(0, 3); 
String dd = dateFormat.substring(4, 6); 
String y = dateFormat.substring(7, 11);
dateFormat = dd + " " + m + " " + y; // 28 mar 2012

long dateLong = HttpDateParser.parse(dateFormat);
long ctimeMinus50Days = dateLong + 1L * ((long) DateTimeUtilities.ONEDAY); 
calendar.setTime ( new Date(ctimeMinus50Days) ); 
System.out.println("ctimeMinus50Days" + ctimeMinus50Days);

Date d = calendar.getTime();
SimpleDateFormat sd1Exactform = new SimpleDateFormat("MMM dd,yyyy"); 
sd1Exactform.format(d);

if (dateCurrent != null) {  //static value so making null before assigning new value
    dateCurrent = null; 
}
dateCurrent = sd1Exactform.format(d);
Значение

ctimeMinus50Days такое же, когда оно работает для приращения, но когда я вижу вывод dateCurrent, это только старая дата, даже если длинное значение показывает приращенные данные.

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Вы можете использовать этот класс

public class DateUtilities {
    static Calendar calendar = Calendar.getInstance();
    public static long getPreviousDate(long currentDate){
        calendar.setTime(new Date(currentDate));
        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) - 1);
        return calendar.getTime().getTime();
    }
    public static long getNextDate(long currentDate){
        calendar.setTime(new Date(currentDate));
        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
        return calendar.getTime().getTime();
    }
}
0 голосов
/ 29 марта 2012

Класс календаря предоставляет метод add, который вы должны использовать для добавления / вычитания элементов даты.Вот пример добавления одного дня к дате, представленной строкой:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {

public static void main(String[] args) throws Exception{
    String dateCurrent = "Mar 1,2012";
    SimpleDateFormat sdExactform = new SimpleDateFormat("MMM d,yyyy");
    Date date = sdExactform.parse(dateCurrent);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.DATE, 1);
    System.out.println(calendar.toString());
    }

}
...