Нет такой вещи, как «тип» ArrayList
.
Класс ArrayList
хранит список ссылок Object
. Он не знает и не заботится о том, являются ли они всего лишь типом.
В общей системе Java добавлена проверка времени компиляции, чтобы помочь вам отслеживать типы. Итак, если вы объявите ArrayList<Person>
, вы получите ошибки компиляции, если вы напишете код, который может вставить в ваш список не Person
.
Во время выполнения единственный способ рассказать, что находится в ArrayList
, чтобы перебрать все содержащиеся элементы и проверить их с помощью instanceof
.
Calendar ca = new GregorianCalendar();
String day = ca.get(Calendar.DAY_OF_MONTH) + "";
String month = ca.get(Calendar.MONTH) + 1 + "";
String year = ca.get(Calendar.YEAR) + "";
if (day.length() == 1) {
day = "0" + day;
}
if (month.length() == 1) {
month = "0" + month;
}
String dd = year + "-" + month + "-" + day;
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dd);
jDateChooser1.setDate(date);
попробуйте установить дату с датой даты компьютера
В качестве ответа на этот дублированный вопрос был впервые записан. Я думал, что было бы лучше иметь его здесь, поэтому у нас есть все ответы в одном месте.
Следующее должно работать в целом, только детали зависят от формата дат в JTable
(от другой вопрос). Я предположил, что из JTable
вы получите строку типа 03/07/2018
(мне говорят, что этот формат будет обычным явлением в Португалии). В этом случае следующий разборщик будет хорош для его разбора. Если строка находится в другом формате, форматтер также должен быть другим.
DateTimeFormatter dtfFormatador = DateTimeFormatter
.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(Locale.forLanguageTag("pt-PT"));
LocalDate data = LocalDate.parse(getData, dtfFormatador);
Instant instante = data.atStartOfDay(ZoneId.systemDefault()).toInstant();
Date dateAntiquado = Date.from(instante);
jdcSeletorDeDatas.setDate(dateAntiquado);
К сожалению, JDateChooser.setDate()
требует объекта old fashoined Date
, хотя мы предпочли бы избежать это устаревший класс. Я использую DateTimeFormatter
для разбора строки из JTable
в LocalDate
и преобразования ее в Date
. LocalDate
- это класс из java.time
, современного API дат и времени Java, который мы должны использовать для даты без времени суток.
Изменить: harsha, ваша строка была
String date = "13 Oct 2016";
Чтобы проанализировать строку в этом формате, используйте следующий форматтер:
DateTimeFormatter dateFormatter= DateTimeFormatter
.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(Locale.US);
В противном случае используйте код выше, где jdcSeletorDeDatas
является JDateChooser
.
Ссылка: Учебник Oracle: Дата Время , объясняющее, как использовать java.time
.
Вы можете сделать это, используя это легко командой SimpleDateFormat
String date = "13 Oct 2016";
java.util.Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(date);
JdateChooser.setDate(date2);
, а также вы можете использовать любой формат даты.
java.text.ParseException: Unparseable date: "13 Oct 2016"
.
– Ole V.V.
14 July 2018 в 06:33
13 Oct 2016
в нем? – Ole V.V. 14 July 2018 в 06:37