关于java:将Date对象转换为日历对象

Converting a Date object to a calendar object

本问题已经有最佳答案,请猛点这里访问。

因此,我从表单中的传入对象获取日期属性:

1
Tue May 24 05:05:16 EDT 2011

我正在编写一个简单的助手方法来将其转换为日历方法,我使用了以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static Calendar DateToCalendar(Date date )
{
 Calendar cal = null;
 try {  
  DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  date = (Date)formatter.parse(date.toString());
  cal=Calendar.getInstance();
  cal.setTime(date);
  }
  catch (ParseException e)
  {
      System.out.println("Exception :"+e);  
  }  
  return cal;
 }

要模拟传入对象,我只是在当前使用的代码中分配值:

1
private Date m_lastActivityDate = new Date();

但是,一旦方法达到以下要求,它就会给我一个空指针:

1
date = (Date)formatter.parse(date.toString());


以下是您的方法:

1
2
3
4
5
public static Calendar toCalendar(Date date){
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal;
}

你所做的一切都是错误的,也是不必要的。

顺便说一下,Java命名约定表明方法名称以小写字母开头,因此应该是:EDCOX1×0或EDCOX1×1(如图所示)。

好吧,我们给你的密码加牛奶,好吗?

1
2
DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
date = (Date)formatter.parse(date.toString());

DateFormat用于将字符串转换为日期(parse()或日期转换为字符串(format())。您正在使用它将日期的字符串表示形式解析回日期。这不可能是对的,对吗?


使用Apache Commons

dateutils.tocalendar(日期日期)


很容易…将日期转换为如下日历:

1
2
3
4
Calendar cal=Calendar.getInstance();
DateFormat format=new SimpleDateFormat("yyyy/mm/dd");
format.format(date);
cal=format.getCalendar();