2012-04-27 16 views
6

Quiero obtener la fecha de un día de la semana, por ejemplo, Wednessday. es decir, si la fecha de hoy es el viernes 27, Wednessday sería de hecho el día 25.GWT Fecha equivalente a java.util.Calendar

pude lograr esto mediante

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); 
String thisWed = String.format("%tF%n", calendar) 

El reto aquí es que java.util.Calendar no está soportada en el lado del cliente GWT, ¿Hay una solución posible sin tener que mover el código a lado del servidor?

Gracias

+0

Duplicados anterior http://stackoverflow.com/questions/ 7009655/how-to-use-java-util-calendar-in-gwt – cellepo

Respuesta

1

usando DateTimeFormat, que permite a un formato java.util.Date en cuerda o una cadena en formato a la fecha.

Date date = new Date(); 
DateTimeFormat format = DateTimeFormat.getFormat("EEEE"); 
String day = format.parse(date); 
+2

Gracias, pero no responde mi pregunta. –

2

más fácil sería probablemente utilizar Joda-tiempo o similar, pero todos los puertos GWT de JodaTime han sido abandonada: Date time library for gwt

El mas potente (sin dependencia de terceros) habría que hacer el cálculo a sí mismo:

Date d = new Date(); 
int dow = d.getDay(); 
int wed_delta = 3 - dow; 
wed = new Date(d.getTime() + (86400 * wed_delta)); 

(la última línea podría sustituirse con CalendarUtil.addDaysToDate(d, wed_delta), modificando d in-place)

+0

Hola Thomas, Primera mirada a tu lógica, Se ve bien, pero cuando la ejecuté, recibí 'Vie 27 de abril 18:25:48 CAT 2012'. Con mi código anterior, obtendría 'Last Wednessday: 2012-04-25'. Espero obtener el último miércoles de esa semana de la nueva Fecha(). –

Cuestiones relacionadas