Calendar cal = new GregorianCalendar();.... // 操作String str = cal.toString();// 这里Calendar cal = parseCal(str);这里的parse函数怎么写?才能把这个toString得到的字符串转换为calendar

解决方案 »

  1.   

    public Calendar parseCal(String calendarString)
    {
      int timeBeginIndex=calendarString.index("time=")+5;
      int timeEndIndex=calendarString.index(",");
      long timeLong=Long.parseLong(calendarString.substring(timeBeginIndex,timeEndIndex));
      Calendar returnCalendar=Calendar.getInstance();
      returnCalendar.setTime(new java.util.Date(timeLong));
      return returnCalendar;

    我的Calendar 打出的字符串是这样的
    java.util.GregorianCalendar[time=1140159186875,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=1,WEEK_OF_YEAR=7,WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=48,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=53,SECOND=6,MILLISECOND=875,ZONE_OFFSET=28800000,DST_OFFSET=0]也可以通过得到别的方法来找到别的字段的数字来得到
    Calendar 吧
      

  2.   

    我现在就是这么做的,用正则,简单很多,
    Pattern p = Pattern.compile("time=(\\d+),");但是时区麻烦
      

  3.   

    id="Asia/Shanghai",这个要找点资料了
      

  4.   

    简单地写了一个类
    import java.util.Calendar;
    public class first { /**
     * @param args
     */
    Calendar cal = Calendar.getInstance();
    first(){
    init();
    }
    public void init(){
    cal.set(Calendar.YEAR,2001);//设置年
    cal.set(Calendar.MONTH,10);//设置月
    cal.set(Calendar.DAY_OF_MONTH,12);//设置天
    int year = cal.get(Calendar.YEAR);//获取年
    int month = cal.get(Calendar.MONTH);//获取月
    int day = cal.get(Calendar.DATE);//获取日
    System.out.println(year);
    System.out.println(month);
    System.out.println(day);
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    new first();
    }}