将字符串转换为日期类型

时间:2012-03-30 14:27:51

标签: java date

我想将字符串转换为日期格式,但以下方式无法正常工作。

null会产生birth


Date  birth;
try {
   DateFormat formatter ; 
   formatter = new SimpleDateFormat("dd-MMM-yyyy");
   birth = (Date)formatter.parse(birthDate);   // birtDate is a string 
} catch (ParseException e) {
    System.out.println("Exception :"+e);
}  

2 个答案:

答案 0 :(得分:2)

你的回答是正确的。我把它放在一个完整的程序中进行测试 它现在打印出

Default date format Fri Mar 30 00:00:00 CDT 2012
Our SimpleDateFormat 30-Mar-2012
Our SimpleDateFormat with all uppercase 30-MAR-2012

以下是一些提示:

  • 确保包含正确的导入。取决于 您的类路径中的内容可能是您不小心导入的 java.sql.Date或其他一些流氓导入。
  • 尝试打印内容 在进入try块之前的birthDate并确认它是真的 包含格式为dd-MMM-yyyy
  • 的字符串

-

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class BirthDate {

    public static void main(String[] args) {
        Date birth = null;
        String birthDate = "30-MAR-2012";
        DateFormat formatter = null;
        try {
            formatter = new SimpleDateFormat("dd-MMM-yyyy");
            birth = (Date) formatter.parse(birthDate); // birtDate is a string
        }
        catch (ParseException e) {
            System.out.println("Exception :" + e);
        }
        if (birth == null) {
            System.out.println("Birth object is still null.");
        } else {
            System.out.println("Default date format " + birth);
            System.out.println("Our SimpleDateFormat " + formatter.format(birth));
            System.out.println("Our SimpleDateFormat with all uppercase " + formatter.format(birth).toUpperCase());
        }
    }
}

答案 1 :(得分:0)

您的代码运行正常。如果你想使用Joda Time,你可以使用它。如果您打算使用时间进行数据库测试和填充,可以查看文档以释放完整的功能。

import org.joda.time.DateTime;
DateTime dt = new DateTime("YYYY-MM-DD");//new DateTime("2012-03-30")
System.out.println(dt);