不知何故我报告了一个问题,其中以下代码将来会提供日期。java日历/格式化程序提供了错误的日期
所用的时区为格林尼治标准时间+01:00。 numberOfDays是非负整数。
此代码的意图是减少当前日期的天数。
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yy",Locale.ENGLISH);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, -numberOfDays);
Date date = calendar.getTime();
String dateStr= formatter.format(date);
System.out.println("Date : "+dateStr);
我无法在我的机器上重现此操作。
区域设置是否影响时区?
我试图关联到Why does a new SimpleDateFormat object contain calendar with the wrong year?和Strange problem with timezone, calendar and SimpleDateFormat,但徒劳无功。
请帮我理解并纠正这个问题。
适合我的作品(打印日期:2月25日11日为我;我在格林威治标准时间)。你的系统在哪个时区? – adarshr 2011-03-07 11:40:20
只是为了澄清:在哪里能够在本地重现问题?或者你刚收到未经验证的报告? – 2011-03-07 11:42:16
也许应该是DAY_OF_YEAR而不是DAY_OF_MONTH? – 2011-03-07 11:44:28