private DateTimeData parseCalendar ( JsonObject root ) throws IOException { DateTimeData data = new DateTimeData ( ) ; JsonObject node = resolve ( root , "dates" , "calendars" , "gregorian" ) ; data . eras = parseEras ( node ) ; data . dayPeriodsFormat = parseDayPeriods ( node , "format" ) ; data . dayPeriodsStandalone = parseDayPeriods ( node , "stand-alone" ) ; data . monthsFormat = parseMonths ( node , "format" ) ; data . monthsStandalone = parseMonths ( node , "stand-alone" ) ; data . weekdaysFormat = parseWeekdays ( node , "format" ) ; data . weekdaysStandalone = parseWeekdays ( node , "stand-alone" ) ; data . quartersFormat = parseQuarters ( node , "format" ) ; data . quartersStandalone = parseQuarters ( node , "stand-alone" ) ; data . dateFormats = parseDateFormats ( node ) ; data . timeFormats = parseTimeFormats ( node ) ; data . dateTimeFormats = parseDateTimeFormats ( node ) ; data . dateTimeSkeletons = parseDateTimeSkeletons ( node ) ; // date time intervals and fallback format data . intervalFormats = new HashMap <> ( ) ; node = resolve ( node , "dateTimeFormats" , "intervalFormats" ) ; for ( String key : objectKeys ( node ) ) { if ( key . equals ( "intervalFormatFallback" ) ) { data . intervalFallbackFormat = string ( node , key ) ; } else { Map < String , String > format = data . intervalFormats . get ( key ) ; if ( format == null ) { format = new HashMap <> ( ) ; data . intervalFormats . put ( key , format ) ; } JsonObject fieldNode = node . getAsJsonObject ( key ) ; for ( String field : objectKeys ( fieldNode ) ) { if ( ! field . endsWith ( "-alt-variant" ) ) { format . put ( field , string ( fieldNode , field ) ) ; } } } } return data ; }
Parse calendar date - time attributes .