【问题标题】:How to create Date object from year,month,day in Java ME如何在 Java ME 中从年、月、日创建日期对象
【发布时间】:2010-03-11 14:30:17
【问题描述】:

我们不能使用 java.text.SimpleDateFormat,那么有没有办法在 Java ME 中从年、月、日创建日期对象?

【问题讨论】:

    标签: date java-me


    【解决方案1】:

    我找到了解决办法,代码如下:

        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;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-06
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      相关资源
      最近更新 更多