java设置日历,Java日历设置不正确

I'm having some trouble with Java's Calendar. I'm parsing some data from a txt file, and need to create a date. After completion of the following code:

tmpYear = Double.parseDouble(row[yearIndex]);

tmpMonth = Double.parseDouble(row[monthIndex]);

tmpDay = Double.parseDouble(row[dayIndex]);

if(timeIndex != -1)

tmpTime = Double.parseDouble(row[timeIndex]);

if(secondsIndex != -1)

tmpSeconds = Double.parseDouble(row[secondsIndex]);

I can debug and see that the variables are as follows:

tmpYear == 2010

tmpMonth == 12

tmpDay == 30

tmpTime == 15 (This is the hour of the day)

tmpSeconds == 0

But when running the following code:

cal.set((int)tmpYear,(int)tmpMonth,(int)tmpDay,(int)tmpTime,

(int)((tmpTime - (int)tmpTime)*100),(int)tmpSeconds);

System.out.println(cal.getTime().toString());

I'm getting this for an output:

Sun Jan 30 15:00:00 CST 2011

Can someone explain what a possible reason for this would be? Thank you all in advance for the help!

解决方案

months are indexed 0-11 instead of 1-12.

0 = January

1 = February

...

11 = December

Use tmpMonth = value -1 instead.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值