question: private void updateHeaderSeparator ( ) { final String bestDateTimePattern = DateFormatUtils . getBestDateTimePattern ( mCurrentLocale , ( mIs24HourView ) ? "Hm" : "hm" ) ; final String separatorText ; final char [ ] hourFormats = { 'H' , 'h' , 'K' , 'k' } ; int hIndex = lastIndexOfAny ( bestDateTimePattern , hourFormats ) ; if ( hIndex == - 1 ) { separatorText = ":" ; } else { separatorText = Character . toString ( bestDateTimePattern . charAt ( hIndex + 1 ) ) ; } mSeparatorView . setText ( separatorText ) ; }
target:  The time separator is defined in the Unicode CLDR and cannot be supposed to be ":". See http://unicode.org/cldr/trac/browser/trunk/common/main We pass the correct "skeleton" depending on 12 or 24 hours view and then extract the separator as the character which is just after the hour marker in the returned pattern.