java - 将 Date 对象转换为日历对象

标签 java date calendar nullpointerexception

所以我从表单中的传入对象中获取日期属性:

Tue May 24 05:05:16 EDT 2011

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

    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;
 }

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

private Date m_lastActivityDate = new Date();

但是,一旦方法到达,这会给我一个空指针:

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

最佳答案

这是你的方法:

public static Calendar toCalendar(Date date){ 
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal;
}

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

顺便说一句,Java 命名约定建议方法名称以小写字母开头,因此应该是:dateToCalendartoCalendar(如图所示)。


好的,让我们挤一下你的代码,好吗?

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

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

关于java - 将 Date 对象转换为日历对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6185966/

相关文章:

java - 如何从 CVS 中删除文件?

java - 如何为 JAR 应用程序配置 logback.xml?

java - MessageListener如何在JMS中运行?能否实时加载队列中的消息?

php - joomla 下拉菜单中的几个月数据

java - SimpleDateFormat 对象中 MMM 和 LLL(独立值)之间的区别

php - 如何确定 UTC 与服务器时区的偏移量?

android - Calendar.getInstance 无法解析为类型

java - 正则表达式不接受正确的输入

c# - 构建日历应用程序时,我应该在数据库中存储日期或重复规则吗?

javascript - 使用 JS 获取希伯来历日期