Calendar cal = new GregorianCalendar();.... // 操作String str = cal.toString();// 这里Calendar cal = parseCal(str);这里的parse函数怎么写?才能把这个toString得到的字符串转换为calendar
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 吧
我现在就是这么做的,用正则,简单很多, Pattern p = Pattern.compile("time=(\\d+),");但是时区麻烦
id="Asia/Shanghai",这个要找点资料了
简单地写了一个类 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(); }}
{
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 吧
Pattern p = Pattern.compile("time=(\\d+),");但是时区麻烦
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();
}}