una studio sistema programa persona nacimiento meses fecha edad dias con como calcular años java gwt calendar

studio - Cómo usar java.util.Calendar en GWT



fecha de nacimiento en java (6)

¿Has intentado agregar el código real de la clase a tu proyecto? Algunas clases Java SDK compilan bien aunque no estén en la lista blanca de JRE.

Tengo que usar java.util.Calendar en el punto de entrada de GWT, pero recibí un error al ejecutar la aplicación, es porque GWT no puede encontrar el código fuente, de todos modos podría solucionar este problema.

¡¡¡Gracias por adelantado!!!


java.util.Calendar no es una clase emulada. Puede encontrar una lista de clases emuladas aquí:

http://code.google.com/webtoolkit/doc/latest/RefJreEmulation.html

Recomiendo encarecidamente no utilizar ninguna biblioteca de fecha / calendario en el lado del cliente. Probablemente solo te metes en problemas. De hecho, aunque java.sql.Date y java.util.Date están emulados en GWT, tampoco los usaría. Si está buscando usar Calendar, entonces es probable que quiera admitir zonas horarias en el cliente. Usando las clases de fecha emuladas, de alguna manera tendrá que convertir la fecha del cliente de la zona horaria del navegador a alguna zona horaria objetivo (GMT o lo que el usuario definió en las preferencias del usuario?). Esto definitivamente será propenso a errores. Usar TimeZone de GWT agrega otros problemas. Por ejemplo, ¿cómo mapea entre TimeZones java y GWT TimeZones?

Recomiendo hacer todas las manipulaciones de fechas Y formatear en el servidor. En el cliente, puede simplemente usar un triplete de fecha / mes / año. El servidor puede tener una asociación entre el usuario (u organización) y java.util.TimeZone (o la zona horaria joda). Usando el triplete y la zona horaria puede crear fácilmente la instancia específica a tiempo.


No, no hay forma de usar java.util.Calendar en GWT porque no hay un equivalente en JavaScript. Pero hay una solicitud de función aceptada para ello. Tal vez encuentre algunos consejos en los comentarios de la solicitud.


Para aquellos que prefieren implementar las matemáticas directamente, aquí hay una solución sobre cómo agregar días a un objeto de fecha existente sin usar Calendar o cualquier función obsoleta:

private Date addDays(Date dateIn, int numDays) { long milisPerDay = 86400000; // convert the dateIn to milliseconds long dateInMilis = dateIn.getTime(); // add numDays to the date dateInMilis = dateInMilis + (numDays * milisPerDay); return new Date(dateInMilis); }


A continuación se detalla cómo obtener el año actual como una Cadena (muy útil para los avisos de Copyright)

long time = System.currentTimeMillis(); long milisPerYear = new BigInteger("31536000000").longValue(); String currentYear = String.valueOf((int) Math.floor(time / milisPerYear) + 1970);

Encontrar las constantes como el número de milisegundos en un día, año, etc. es fácil con Google. La parte difícil es agregar meses, ya que la cantidad de milisegundos en un mes dependerá del mes. Si hay alguna demanda, me gustaría escribir una función y publicarla aquí para sumar y restar meses.


Puede usar com.google.gwt.user.datepicker.client.CalendarUtil .


A continuación, se muestra cómo usar Joda Time para extraer cualquier información de fecha de un tipo de Date Java con la función Joda Times format() y usarla para construir una new Date() usando la función parse() Joda Time.

static DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy-MM-dd HH:mm:ss.SSS"); static DateTimeFormat datefmt = DateTimeFormat.getFormat("yyyy-MM-dd "); static DateTimeFormat timefmt = DateTimeFormat.getFormat("HH:mm:ss.SSS"); public Date getDateTime(Date date, Date time) { String datetime = datefmt.format(date) + timefmt.format(time); return dtf.parse(datetime); }