public static Date fromISO8601(char[] charArray, int from, int to) { try { int length = to - from; if (isISO8601(charArray, from, to)) { int year = CharScanner.parseInt(charArray, from + 0, from + 4); int month = CharScanner.parseInt(charArray, from + 5, from + 7); int day = CharScanner.parseInt(charArray, from + 8, from + 10); int hour = CharScanner.parseInt(charArray, from + 11, from + 13); int minute = CharScanner.parseInt(charArray, from + 14, from + 16); int second = CharScanner.parseInt(charArray, from + 17, from + 19); TimeZone tz = null; if (charArray[from + 19] == 'Z') { tz = GMT; } else { StringBuilder builder = new StringBuilder(9); builder.append("GMT"); builder.append(charArray, from + 19, 6); String tzStr = builder.toString(); tz = TimeZone.getTimeZone(tzStr); } return toDate(tz, year, month, day, hour, minute, second); } else { return null; } } catch (Exception ex) { return null; } }
public static Date fromISO8601( char[] charArray, int from, int to ) { try { int length = to - from; if ( isISO8601( charArray, from, to ) ) { int year = CharScanner.parseInt(charArray, from + 0, from + 4); int month = CharScanner.parseInt(charArray, from + 5, from + 7); int day = CharScanner.parseInt(charArray, from + 8, from + 10); int hour = CharScanner.parseInt(charArray, from + 11, from + 13); int minute = CharScanner.parseInt(charArray, from + 14, from + 16); int second = CharScanner.parseInt(charArray, from + 17, from + 19); TimeZone tz = null; if ( charArray[ from + 19 ] == 'Z' ) { tz = GMT; } else { StringBuilder builder = new StringBuilder( 9 ); builder.append( "GMT" ); builder.append( charArray, from + 19, 6 ); String tzStr = builder.toString(); tz = TimeZone.getTimeZone( tzStr ); } return toDate( tz, year, month, day, hour, minute, second ); } else { return null; } } catch (Exception ex) { return null; } }
tz = TimeZone.getTimeZone(tzStr); return toDate(tz, year, month, day, hour, minute, second, millisecond);
tz = TimeZone.getTimeZone(tzStr); return toDate( tz, year, month, day, hour, minute, second, millisecond );
public static Date fromJsonDate(char[] charArray, int from, int to) { try { if (isJsonDate(charArray, from, to)) { int year = CharScanner.parseInt(charArray, from + 0, from + 4); int month = CharScanner.parseInt(charArray, from + 5, from + 7); int day = CharScanner.parseInt(charArray, from + 8, from + 10); int hour = CharScanner.parseInt(charArray, from + 11, from + 13); int minute = CharScanner.parseInt(charArray, from + 14, from + 16); int second = CharScanner.parseInt(charArray, from + 17, from + 19); int milliseconds = CharScanner.parseInt(charArray, from + 20, from + 23); TimeZone tz = GMT; return toDate(tz, year, month, day, hour, minute, second, milliseconds); } else { return null; } } catch (Exception ex) { return null; } }
public static Date fromJsonDate( char[] charArray, int from, int to ) { try { if ( isJsonDate( charArray, from, to ) ) { int year = CharScanner.parseInt(charArray, from + 0, from + 4); int month = CharScanner.parseInt(charArray, from + 5, from + 7); int day = CharScanner.parseInt(charArray, from + 8, from + 10); int hour = CharScanner.parseInt(charArray, from + 11, from + 13); int minute = CharScanner.parseInt(charArray, from + 14, from + 16); int second = CharScanner.parseInt(charArray, from + 17, from + 19); int milliseconds = CharScanner.parseInt(charArray, from + 20, from + 23); TimeZone tz = GMT; return toDate( tz, year, month, day, hour, minute, second, milliseconds ); } else { return null; } } catch (Exception ex) { return null; } }
private static Date looseParse( char[] buffer, int startIndex, int endIndex ) { final char[][] parts = CharScanner.splitByCharsNoneEmpty(buffer, startIndex, endIndex, '-', ':', 'T', '.'); int year = 0; int month = 0; int day = 0; int hour = 0; int minutes = 0; int seconds = 0; int mili = 0; if ( parts.length >= 3 ) { year = CharScanner.parseInt( parts[ 0 ] ); month = CharScanner.parseInt( parts[ 1 ] ); day = CharScanner.parseInt( parts[ 2 ] ); } if ( parts.length >= 6 ) { hour = CharScanner.parseInt( parts[ 3 ] ); minutes = CharScanner.parseInt( parts[ 4 ] ); seconds = CharScanner.parseInt( parts[ 5 ] ); } if ( parts.length >= 7 ) { mili = CharScanner.parseInt( parts[ 6 ] ); } return toDate( year, month, day, hour, minutes, seconds, mili ); }
private static Date looseParse(char[] buffer, int startIndex, int endIndex) { final char[][] parts = CharScanner.splitByCharsNoneEmpty(buffer, startIndex, endIndex, '-', ':', 'T', '.'); int year = 0; int month = 0; int day = 0; int hour = 0; int minutes = 0; int seconds = 0; int mili = 0; if (parts.length >= 3) { year = CharScanner.parseInt(parts[0]); month = CharScanner.parseInt(parts[1]); day = CharScanner.parseInt(parts[2]); } if (parts.length >= 6) { hour = CharScanner.parseInt(parts[3]); minutes = CharScanner.parseInt(parts[4]); seconds = CharScanner.parseInt(parts[5]); } if (parts.length >= 7) { mili = CharScanner.parseInt(parts[6]); } return toDate(year, month, day, hour, minutes, seconds, mili); }