如何将日期时间字符串放入Calendar对象?

时间:2012-09-27 13:00:39

标签: java

  

可能重复:
  How to convert a date String to a Date or Calendar object?

我怎么能做这样的事呢

GregorianCalendar cal = new GregorianCalendar("2012-08-02 12:04:03");

Calendar cal = Calendar.getInstance();
cal.setDateTime("2012-08-02 12:04:03");

注意:上面的代码段实际上是不可能的,我想嘲笑这种行为。

进一步澄清

假设我有一个日期和时间字符串,如“2012-08-02 12:04:03”。是否有一种有效的方法可以将此信息转换为Calendar对象,而无需手动将其分解为月,年和日字符串,然后将它们转换为整数然后调用set(Calendar.HOUR)等?

目前,我有一个表格,将年,月,小时,日等作为输入,我将这些单独传递给日历对象,但如果我可以使用单个日期和时间字符串,那将会很好“2012-08-02 12:04:03”

3 个答案:

答案 0 :(得分:1)

您必须使用SimpleDateFormat,它会为您提供Date个对象。使用该Date对象,您可以初始化Calendar

答案 1 :(得分:1)

    String dateString=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("2012-08-02 12:04:03");
            Calender cal = Calender.getInstance();
            cal.setTime(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(dateString).getTime());

将它包装在try catch中,因为parse方法会抛出ParseException。并研究@ user714965

提供的链接

答案 2 :(得分:0)

使用.parse()方法将String转换为Date对象:

String dateString=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("2012-08-02 12:04:03");

getInstance()将创建一个抽象Calendar类的子类之一的实例:

Calender cal = Calender.getInstance();

setTime()将采用Date对象:

cal.setTime(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").fomat(dateString).getTime());