2013-03-22 53 views
-1

我在将日历更改为字符串时遇到问题。当我运行该程序时,日历不会更改为日期。这是我的代码:将日历对象更改为字符串

switch(selection){ 
    case 1: 
     Calendar cal = Calendar.getInstance(); 
     cal.getTime().toString(); 
     LifeTimeMembers lifetime = new LifeTimeMembers(); 
     lifetime.setName(name); 
     lifetime.setSurname(surname); 
     lifetime.setAddress(address); 
     lifetime.setJoinDate(cal); 
     members.add(lifetime); 
     break; 
    case 2: 
     cal.add(Calendar.YEAR, 1); 
     YearlyMembers yearly = new YearlyMembers(name, surname, address, cal); 
     members.add(yearly); 
     break; 
} 
System.out.println("Member added"); 

有人可以帮我吗?

+0

无法理解你的问题。 – 2013-03-22 13:14:03

+0

你想通过cal.getTime()。toString()函数来完成什么? – Reg 2013-03-22 13:15:45

+0

AND - 什么是setJoinDate的类型?日期? – Reg 2013-03-22 13:18:19

回答

0

我不知道你想要什么,但也许这将做到这一点:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd"); 
dateFormat.setLenient(false); 
Date d = cal.getTime(); 
String dateAsStr = dateFormat.format(d); 
+0

这就是我的代码:Join Date:java.util.GregorianCalendar [time = 1363959072596,areFieldsSet = true,areAllFieldsSet = true,lenient = true,zone = sun.util.calendar.ZoneInfo [id =“Europe /Berlin",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=143,lastRule=java.util.SimpleTimeZone[id=Europe/Berlin,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0, startMode = 2,startMonth = 2,startDay = -1,startDayOfWeek = 1,startTime = 3600000,startTimeMode = 2,endMode = 2,endMonth = 9,endDay = -1,endDayOfWeek = 1,endTime = 3600000,endTimeMode = 2 ]],firstDayOfWeek = 2,minimalDaysInFirstWeek = 4,ERA = 1 ... – user2601 2013-03-22 13:34:43

+0

你不需要那些东西。使连接日期成为java.util.Date - 这就是您所需要的。为什么所有这些大惊小怪? – duffymo 2013-03-22 13:41:44

1

cal.getTime().toString();返回一个值,但是你没有做任何事的。

而是像做

String timeAsString = cal.getTime().toString();然后用timeAsString但是你在你的程序一样。

您可以看到Date.toString()的默认格式。如果您想格式化,请检查DateFormat课程的文档。

1

首先格式化即将到来的日期。

DateFormat dateFormat = new SimpleDateFormat("yyyy-MMM-dd"); 
Date d=dateFormat.format(cal); 

解析日期字符串

String dateAsStr = dateFormat.format(d);