为什么我加了 10 分钟后月份变成了 50?

我有这个日期对象:

SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm");
Date d1 = df.parse(interviewList.get(37).getTime());

d1 的值为 Fri Jan 07 17:40:00 PKT 2011

现在我正在尝试在上面的日期上增加 10 分钟.

Now I am trying to add 10 minutes to the date above.

Calendar cal = Calendar.getInstance();
cal.setTime(d1);
cal.add(Calendar.MINUTE, 10);
String newTime = df.format(cal.getTime());

newTime 的值更改为 2011-50-07 17:50但应该是 07-01-2011 17:50.

Value of newTime changes to 2011-50-07 17:50 but it should be 07-01-2011 17:50.

它正确地添加了分钟,但它也改变了月份,不知道为什么!

It adds minutes correctly but it also changes month, don't know why!

推荐答案

你的问题是你正在使用 mm.您应该使用 MM.MM 是月份,mm 是分钟.试试 yyyy-MM-dd HH:mm

The issue for you is that you are using mm. You should use MM. MM is for month and mm is for minutes. Try with yyyy-MM-dd HH:mm

其他方法:

可以这么简单(其他选择是使用 joda-time)

It can be as simple as this (other option is to use joda-time)

static final long ONE_MINUTE_IN_MILLIS=60000;//millisecs

Calendar date = Calendar.getInstance();
long t= date.getTimeInMillis();
Date afterAddingTenMins=new Date(t + (10 * ONE_MINUTE_IN_MILLIS));

相关文章