Pregunta
He creado la siguiente clase que se extiende JSpinner
para iterar sobre dd / mm / valores yyy.
public class DateSpinner extends JSpinner{
Calendar calendar = new GregorianCalendar();
public DateSpinner(){
super();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date now = calendar.getTime();
calendar.add(Calendar.DAY_OF_YEAR, -2);
Date startDate = calendar.getTime();
calendar.add(Calendar.YEAR, 100);
Date endDate = calendar.getTime();
SpinnerDateModel dateModel = new SpinnerDateModel
( now , startDate , endDate , Calendar.DAY_OF_MONTH );
setModel(dateModel);
JFormattedTextField tf =
((JSpinner.DefaultEditor)getEditor()).getTextField();
DefaultFormatterFactory factory =
(DefaultFormatterFactory)tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy"));
}
}
Mi problema es cuando establezca su valor mediante
Date today = new Date();
spinner.setValue(today);
Me da la fecha como la hora y el día de la semana. Si toco la ruleta da formato de acuerdo al formato puse. ¿Cómo puedo obtener el formato inicialmente Quiero ser mostrado?
Solución
Uso redactores incorporados, tales como seguir
spinner.setEditor(new JSpinner.DateEditor(spinner, "dd/MM/yyyy"));
Otros consejos
Además, como nota al margen - siempre que trabaje con calendarios, fechas y horas me gustaría considerar el uso de Joda Time .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow