*
* @param pattern the Java DateFormat pattern
* @return JavaScript Calendar pattern
*/
protected String parseDateFormatPattern(String pattern) {
HtmlStringBuffer jsPattern = new HtmlStringBuffer(20);
int tokenStart = -1;
int tokenEnd = -1;
boolean debug = false;
for (int i = 0; i < pattern.length(); i++) {
char aChar = pattern.charAt(i);
if (debug) {
System.err.print("[" + i + "," + tokenStart + "," + tokenEnd
+ "]=" + aChar);
}
// If character is in SimpleDateFormat pattern character set
if ("GyMwWDdFEaHkKhmsSzZ".indexOf(aChar) == - 1) {
if (debug) {
System.err.println(" N");
}
if (tokenStart > - 1) {
tokenEnd = i;
}
} else {
if (debug) {
System.err.println(" Y");
}
if (tokenStart == - 1) {
tokenStart = i;
}
}
if (tokenStart > -1) {
if (tokenEnd == -1 && i == pattern.length() - 1) {
tokenEnd = pattern.length();
}
if (tokenEnd > -1) {
String token = pattern.substring(tokenStart, tokenEnd);
if ("yyyy".equals(token)) {
jsPattern.append("yyyy");
} else if ("yy".equals(token)) {
jsPattern.append("yy");
} else if ("y".equals(token)) {
jsPattern.append("y");
} else if ("MMMM".equals(token)) {
jsPattern.append("MMM");
} else if ("MMM".equals(token)) {
jsPattern.append("NNN");
} else if ("MM".equals(token)) {
jsPattern.append("MM");
} else if ("M".equals(token)) {
jsPattern.append("M");
} else if ("dd".equals(token)) {
jsPattern.append("dd");
} else if ("d".equals(token)) {
jsPattern.append("d");
} else if ("EEEE".equals(token)) {
jsPattern.append("EE");
} else if ("EEE".equals(token)) {
jsPattern.append("E");
} else if ("EE".equals(token)) {
jsPattern.append("E");
} else if ("E".equals(token)) {
jsPattern.append("E");
} else if ("aaa".equals(token)) {
jsPattern.append("a");
} else if ("aa".equals(token)) {
jsPattern.append("a");
} else if ("a".equals(token)) {
jsPattern.append("a");
} else if ("HH".equals(token)) {
jsPattern.append("HH");
setShowTime(true);
} else if ("H".equals(token)) {
jsPattern.append("H");
setShowTime(true);
} else if ("hh".equals(token)) {
jsPattern.append("hh");
setShowTime(true);
} else if ("h".equals(token)) {
jsPattern.append("h");
setShowTime(true);
} else if ("mm".equals(token)) {
jsPattern.append("mm");
setShowTime(true);
} else if ("m".equals(token)) {
jsPattern.append("m");
setShowTime(true);
} else if ("ss".equals(token)) {
jsPattern.append("ss");
setShowTime(true);
} else if ("s".equals(token)) {
jsPattern.append("s");
setShowTime(true);
} else {
if (debug) {
System.err.println("Not mapped:" + token);
}
}
if (debug) {
System.err.println("token[" + tokenStart + ","
+ tokenEnd + "]='" + token + "'");
}
tokenStart = -1;
tokenEnd = -1;
}
}
if (tokenStart == -1 && tokenEnd == -1) {
if ("GyMwWDdFEaHkKhmsSzZ".indexOf(aChar) == -1) {
jsPattern.append(aChar);
}
}
}
return jsPattern.toString();
}