Если бы это была обычная Java, вы бы использовали два SimpleDateFormats - один для чтения и один для записи:
SimpleDateFormat read = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat write = new SimpleDateFormat("EEEE-MMM-dd");
String str = write.format(read.parse("2011-11-02"));
System.out.println(str);
Выход:
Wednesday-Nov-02
Как функция (то есть статический метод) это будет выглядеть так:
public static String reformat(String source) throws ParseException {
SimpleDateFormat read = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat write = new SimpleDateFormat("EEEE-MMM-dd");
return write.format(read.parse(source));
}
Внимание:
Не поддавайтесь искушению сделать read
или write
в статических полях, чтобы сохранить их создание при каждом вызове метода, потому что SimpleDateFormat не является потокобезопасным!
Отредактировано
Однако после ознакомления с документом Blackberry Java 5.0 API кажется, что часть write.format
должна работать с SimpleDateFormat , но вам нужно будет проанализировать дату, используя что-то еще ... HttpDateParser выглядит многообещающе. У меня не установлен JDK, но попробуйте следующее:
public static String reformat(String source) {
SimpleDateFormat write = new SimpleDateFormat("EEEE-MMM-dd");
Date date = new Date(HttpDateParser.parse(source));
return write.format(date);
}