/* *Initializeourpatterntranslation
*/ static {
translate = new Properties();
translate.put("a","EEE");
translate.put("A","EEEE");
translate.put("b","MMM");
translate.put("B","MMMM");
translate.put("c","EEE MMM d HH:mm:ss yyyy");
//There's no way to specify the century in SimpleDateFormat. We don't want to hard-code //20 since this could be wrong for the pre-2000 files. //translate.put("C", "20");
translate.put("d","dd");
translate.put("D","MM/dd/yy");
translate.put("e","dd"); //will show as '03' instead of ' 3'
translate.put("F","yyyy-MM-dd");
translate.put("g","yy");
translate.put("G","yyyy");
translate.put("H","HH");
translate.put("h","MMM");
translate.put("I","hh");
translate.put("j","DDD");
translate.put("k","HH"); //will show as '07' instead of ' 7'
translate.put("l","hh"); //will show as '07' instead of ' 7'
translate.put("m","MM");
translate.put("M","mm");
translate.put("n","\n");
translate.put("p","a");
translate.put("P","a"); //will show as pm instead of PM
translate.put("r","hh:mm:ss a");
translate.put("R","HH:mm"); //There's no way to specify this with SimpleDateFormat //translate.put("s","seconds since epoch");
translate.put("S","ss");
translate.put("t","\t");
translate.put("T","HH:mm:ss"); //There's no way to specify this with SimpleDateFormat //translate.put("u","day of week ( 1-7 )");
//There's no way to specify this with SimpleDateFormat //translate.put("U","week in year with first Sunday as first day...");
translate.put("V","ww"); //I'm not sure this is always exactly the same
//There's no way to specify this with SimpleDateFormat //translate.put("W","week in year with first Monday as first day...");
//There's no way to specify this with SimpleDateFormat //translate.put("w","E");
translate.put("X","HH:mm:ss");
translate.put("x","MM/dd/yy");
translate.put("y","yy");
translate.put("Y","yyyy");
translate.put("Z","z");
translate.put("z","Z");
translate.put("%","%");
}
/** *Formatthedateaccordingtothestrftime-stylestringgivenintheconstructor. * *@paramdatethedatetoformat *@returntheformatteddate
*/ public String format( Date date ) { return simpleDateFormat.format( date );
}
for(int i = 0; i < pattern.length(); i++) { char c = pattern.charAt(i);
if ( c=='%' && !mark ) {
mark=true;
} else { if ( mark ) { if ( modifiedCommand ) { //don't do anything--we just wanted to skip a char
modifiedCommand = false;
mark = false;
} else {
inside = translateCommand( buf, pattern, i, inside ); //It's a modifier code if ( c=='O' || c=='E' ) {
modifiedCommand = true;
} else {
mark=false;
}
}
} else { if ( !inside && c != ' ' ) { //We start a literal, which we need to quote
buf.append('\'');
inside = true;
}
//O and E are modifiers, they mean to present an alternative representation of the next char //we just handle the next char as if the O or E wasn't there if ( firstChar == 'O' || firstChar == 'E' ) { if ( index + 1 < pattern.length() ) {
newInside = translateCommand( buf, pattern, index + 1, oldInside );
} else {
buf.append( quote("%" + firstChar, oldInside ) );
}
} else {
String command = translate.getProperty( String.valueOf( firstChar ) );
//If we don't find a format, treat it as a literal--That's what apache does if ( command == null ) {
buf.append( quote( "%" + firstChar, oldInside ) );
} else { //If we were inside quotes, close the quotes if ( oldInside ) {
buf.append( '\'' );
}
buf.append( command );
newInside = false;
}
} return newInside;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.