While setting time of a section in non-English locale, it will generate a RuntimeException. Its hint is "A bad date made it through validation! This should never happen!". But unfortunately, it happens.
In /sections/sections-app-util/src/java/org/sakaiproject/tool/section/jsf/JsfUtil.java convertStringToTime(String str, boolean am), An suffix either "AM" or "PM" is added according to the param. And the result string will be parsed to date by user locale(new ResourceLoader().getLocale(), line 197). Since not all locale use AM/PM (zh_CN for example), it will cause a "never happen" exception.
The solution of this bug is just change the line 197
SimpleDateFormat sdf = new SimpleDateFormat(pattern, new ResourceLoader().getLocale());
to US locale which use AM/PM
SimpleDateFormat sdf = new SimpleDateFormat(pattern, Locale.US);