我们不能使用java.text.SimpleDateFormat,那么有没有办法在Java ME中创建年,月,日的日期对象?
答案 0 :(得分:0)
我找到了解决方案,以下是代码:
public static Date parseDate(String dateString) throws IllegalArgumentException {
Date date = new Date(0);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println("Calendar Before "+date);
if (dateString == null || dateString.equals("")) {
throw new IllegalArgumentException("Invalid String to Parse as Date - dateString was null or empty");
}
int strSize = dateString.length();
if (strSize < 21) {
throw new IllegalArgumentException("Invalid String to Parse as Date - dateString invalid string length ("+strSize+")");
}
String yearStr = dateString.substring(0,4);
String monthStr = dateString.substring(5,7);
String dayStr = dateString.substring(8,10);
String hourStr = dateString.substring(11,13);
String minuteStr = dateString.substring(14,16);
String secondsStr = dateString.substring(17,19);
String millisStr = dateString.substring(20,Math.min(strSize,23));
int year = 0;
int day = 0;
int month = 0;
int hour = 0;
int minute = 0;
int seconds = 0;
int millis = 0;
try {
year = Integer.parseInt(yearStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+yearStr+"' as a valid year");
}
try {
day = Integer.parseInt(dayStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+dayStr+"' as a valid day");
}
try {
month = Integer.parseInt(monthStr) - 1; //Zero Based Months
} catch (Exception e) {
throw new DateParseException("Could not parse '"+monthStr+"' as a valid month");
}
try {
hour = Integer.parseInt(hourStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+hourStr+"' as a valid hour");
}
try {
minute = Integer.parseInt(minuteStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+minuteStr+"' as a valid minute");
}
try {
seconds = Integer.parseInt(secondsStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+secondsStr+"' as a valid seconds");
}
try {
millis = Integer.parseInt(millisStr);
} catch (Exception e) {
throw new DateParseException("Could not parse '"+millisStr+"' as a valid millis");
}
System.out.println("Y: "+year+" M: "+month+" D: "+day);
System.out.println("H: "+hour+" m: "+minute+" s: "+seconds+" S: "+millis);
cal.set(Calendar.MONTH,month);
cal.set(Calendar.DATE,day);
cal.set(Calendar.YEAR,year);
cal.set(Calendar.HOUR_OF_DAY,hour);
cal.set(Calendar.MINUTE,minute);
cal.set(Calendar.SECOND,seconds);
System.out.println("Date After "+date);
date = cal.getTime();
return date;
}