question: protected DateTimeData parse ( String str ) throws SchemaDateTimeException { DateTimeData date = new DateTimeData ( str , this ) ; int len = str . length ( ) ; date . year = YEAR ; date . day = DAY ; if ( str . charAt ( 0 ) != '-' || str . charAt ( 1 ) != '-' ) { throw new SchemaDateTimeException ( "Invalid format for gMonth: " + str ) ; } int stop = 4 ; date . month = parseInt ( str , 2 , stop ) ; if ( str . length ( ) >= stop + 2 && str . charAt ( stop ) == '-' && str . charAt ( stop + 1 ) == '-' ) { stop += 2 ; } if ( stop < len ) { if ( ! isNextCharUTCSign ( str , stop , len ) ) { throw new SchemaDateTimeException ( "Error in month parsing: " + str ) ; } else { getTimeZone ( str , date , stop , len ) ; } } validateDateTime ( date ) ; saveUnnormalized ( date ) ; if ( date . utc != 0 && date . utc != 'Z' ) { normalize ( date ) ; } date . position = 1 ; return date ; }
target:  Parses, validates and computes normalized version of gMonth object