我真的无法理解这个问题。
我有这个功能
public Timestamp getRealDateInvoice(Timestamp dateInvoiced) {
Timestamp date = dateInvoiced;
if (INVOICEFREQUENCY_Monthly.equals(getInvoiceFrequency())
|| INVOICEFREQUENCY_TwiceMonthly.equals(getInvoiceFrequency())) {
Calendar aCalendar = Calendar.getInstance();
aCalendar.add(Calendar.MONTH, -1); // add -1 month to current month
aCalendar.set(Calendar.DATE, 1); // set DATE to 1, so first date of previous month
aCalendar.set(Calendar.DATE, aCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // set actual maximum date of the previous month
date.setTime(aCalendar.getTimeInMillis());
}
我将使用此值执行它:getRealDateInvoice('09/11/2015')
结果
date = 31/10/2015
(这是好的)。
dateInvoiced = 31/10/2015
(这不是好的)。
问题:
为什么变量dateInvoiced
也已更新
谢谢。
答案 0 :(得分:0)
创建一个新的Timestamp对象,因为它将long类型作为参数,如下所示:
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("09/11/2015");
long time = date.getTime();
new Timestamp(time);