-1

可能重复:
如何将日期字符串转换为日期或日历对象?

我怎么能做这样的事情

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”。有没有一种有效的方法可以将此信息放入日历对象中,而无需手动将其分解为月、年和日字符串,然后将它们转换为整数,然后调用 set(Calendar.HOUR) 等?

目前,我有一个表单,可以输入年、月、小时、日等,我将它们单独传递到日历对象中,但如果我可以使用单个日期和时间字符串,例如“2012- 08-02 12:04:03"

4

3 回答 3

1

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

于 2012-09-27T13:02:46.043 回答
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 提供的链接

于 2012-09-27T13:05:13.467 回答
0

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

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

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

Calender cal = Calender.getInstance();

setTime() 将采用 Date 对象:

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

于 2012-09-27T13:15:28.773 回答