java - 从日历对象检索年月日期时出错

标签 java date

所有这些都是我的程序,我正在尝试以下操作

下面是我的日期功能代码...

import java.text.SimpleDateFormat;
import java.util.*;
import java.text.*;
public class DateToCalender {
public static void main(String args[]){
//String strFormat="yyyymmdd";

//DateFormat myDateFormat = new SimpleDateFormat(strFormat);
DateFormat df= new SimpleDateFormat("yyyyMMdd");
df.setLenient(false);
Calendar start=Calendar.getInstance();
try {
Date fromDt =(Date)df.parse("20111207");
//Date myDate = new Date();
//myDate = (Date)myDateFormat.parse("20111207");
//myGDate.setTime(myDate);
start.setTime(fromDt);

                start.set(Calendar.MONTH,(start.get(Calendar.MONTH)+1));
System.out.println(start);

System.out.println(start.get(Calendar.YEAR));
System.out.println(start.get(Calendar.MONTH)-1);
System.out.println(start.get(Calendar.DAY_OF_MONTH));
//System.out.println("From My class"+myGDate.get(Calendar.MONTH));

//System.out.println("From My class new month"+(myGDate.get(Calendar.MONTH)+1));

} catch (ParseException e) {
System.out.println("Invalid Date Parser Exception ");
e.printStackTrace();
}
} 
}  

当我执行此代码时,我得到以下o/p

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA
=1,YEAR=2011,MONTH=12,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=7,DAY_OF_YEAR=341,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=19800000,DST_OFFSET=0]
2011
0
7
** 问题是:

Though iam entering date as 2011/12/07
            I am getting     year as 2011
                             month as 0
                             date as 7
Can some one help in resolving above issue

任何机构都可以告诉我如何解决这个问题吗?

最佳答案

月份不要减 1; 日历 已经知道它是从零开始的。

在我看来,你在这里做的工作太多了。为什么你不能这样做呢?

private static final DateFormat DEFAULT_DATE_FORMAT;

static {
    DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
    DEFAULT_DATE_FORMAT.setLenient(false);
}



public Calendar getCalendar(String dateAsString) {
    Calendar value = Calendar.getInstance();
    Date d = DEFAULT_DATE_FORMAT.parse(dateAsString);
    value.setTime(d);
    return value;
}

有一个异常需要添加到方法签名中,但您明白了。查看Calendar javadocs。这可能会更容易。

关于java - 从日历对象检索年月日期时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599903/

相关文章:

java - CDI。如何检查bean是否实例化?

date - Groovy 在 00 :00:00 分钟获取今天的日期

javascript - 在任意一天的任意时区获取日期的本地时间表示 - 考虑夏令时

mysql - Pentaho DI - 表输入错误 "couldn' t 从结果集中获取行”

mysql - 在表 SQL 中生成日期

java - 如何在android中将时间戳与当前时间进行比较,减去一定的分钟数

java - USB Java 库

java - 如何防止 Hibernate 修剪字符串?

Java 相当于 php pack ('H*' , str)

java - 在泛型类中嵌套泛型