Java 日期递增问题
我可以在我的黑莓应用程序中增减日期 当我在弹出屏幕中更改一些数据并单击“下一步”时,问题就出现了。日期保持不变,但不递增,但长值与递增值相同Java 日期递增问题,java,blackberry,java-me,Java,Blackberry,Java Me,我可以在我的黑莓应用程序中增减日期 当我在弹出屏幕中更改一些数据并单击“下一步”时,问题就出现了。日期保持不变,但不递增,但长值与递增值相同 Calendar calendar = Calendar.getInstance(); String dateFormat = compareDate; //mar 28,2012-compare date value String m = dateFormat.substring(0, 3); String dd = dateFormat.subst
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
输出时,它只是旧日期,即使长值显示增量数据。您可以使用该类
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();
}
}
Calendar类公开了用于添加/减去日期元素的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());
}
}
考虑使用JavaUTL.DATE在UNIX时间戳格式中规范数据。使用该格式的数学运算和使用dd-mm-yyyy格式仅用于用户演示可以避免许多问题。要减去一天,只需“添加”一个负数,例如,
calendar.add(calendar.day\u of_YEAR,-1)代码>@daniel calendar.add不是blackberry calendar api的一部分