Я полагаю, что некоторые из вас прочитали заголовок и подумали: «О, еще один вопрос о системе месяца в Java, основанной на 0 ...». Ну, не в этот раз.
После того, как мы перешли на летнее время, мой объект календаря Java ведет себя неадекватно. Установка месяца на ИЮНЬ фактически устанавливает его на июль. Я понятия не имею, почему, но кто-то предложил мне установить объект Locale
в параметрах конструктора календаря. Это не сработало. Следующий код возвращает 01-07-14
в моей консоли.
Любые идеи?
public class test {
public static void main(String[] args){
Locale locale = new Locale("da-DK");
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy");
Calendar date = new GregorianCalendar(locale);
date.set(Calendar.MONTH, Calendar.JUNE);
System.out.println(sdf.format(date.getTime()));
}
}
ОБНОВЛЕНИЕ:
это также возвращает 01-07-14
public class test {
public static void main(String[] args){
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yy");
TimeZone timeZone = TimeZone.getTimeZone("Europe/Copenhagen");
Calendar date = new GregorianCalendar(timeZone);
date.set(Calendar.MONTH, Calendar.JUNE);
System.out.println(sdf.format(date.getTime()));
}
}