Me gustaría hacer simples cálculos de fecha en Java. Por ejemplo, calcular la diferencia en días entre dos fechas (tener un 0 componente de tiempo). Por supuesto, usted puede hacer una simple resta de milisegundos, dividido por el número de milisegundos por día, lo que funciona bien – hasta el horario de verano veces de entrar en escena.
Soy consciente de que las diferentes interpretaciones de la «diferencia» en días» son posibles, en particuliar, si se debe tomar en cuenta el componente de tiempo o no. Supongamos que tenemos un 0 componente de tiempo para la simplicidad.

Este tipo de cálculo parece ser una necesidad común, y me sería agradable tener una discusión sobre los distintos enfoques de la cuestión.

JODA TIEMPO!!!!!! (Antes de la prisa!)
java.tiempo!!!!!!

OriginalEl autor mikemax | 2009-03-13

5 Comentarios

  1. 11

    Me gustaría echar un vistazo a la Joda fecha/hora de la biblioteca, y, en particular, la ReadableInterval clase.

    Joda hace la vida mucho más fácil a la hora de manipular fechas y horas en Java, y creo que es la fundación de la nueva Java JSR 310 wrt. fechas/horas. es decir, (o algo muy similar) estará presente en una futura versión de Java.

    FYI, el Joda-Time proyecto se encuentra ahora en modo de mantenimiento, con el equipo de asesoramiento de la migración a la java.tiempo clases. Consulte Tutorial de Oracle.

    OriginalEl autor Brian Agnew

  2. 3

    Se parece a la Fecha, el Calendario, y DateUtils va a hacer todo lo que estás buscando.
    http://commons.apache.org/lang/api/org/apache/commons/lang/time/DateUtils.html

    DateUtils permite el truncamiento o redondeo el tiempo por lo que sólo puede ocuparse solo de las fechas. También ha mencionado el horario de verano. El principal problema es cuando alguien dice que le hizo algo a la 01:30 en un día donde hubo cambio de horario de verano… que las 01:30 era? El primero o el segundo? Por suerte, este puede ser manejado por el Calendario de la clase, ya que las tiendas de la zona horaria y horario de verano de desplazamiento. Para los detalles sobre todo esto, mira esto:
    http://www.xmission.com/~goodhill/dates/deltaDates.html

    OriginalEl autor user77978

  3. 2

    La opción más sencilla es utilizar los Días, las Semanas, los Meses y los Años clases en Joda.

    De esa manera, usted puede hacer algo tan simple como:

    int daysDifference = Days.daysBetween(startInstant, endInstant).getDays();
    Y convertir su actual java.util.Date objetos a ReadableIntervals que puede pasar a daysBetween, usted puede hacer: new DateTime(somejavautildate)
    FYI, el Joda-Time proyecto se encuentra ahora en modo de mantenimiento, con el equipo de asesoramiento de la migración a la java.tiempo clases. Consulte Tutorial de Oracle.

    OriginalEl autor Sarhanis

  4. 1

    Usando java.tiempo

    El enfoque moderno es con el java.el tiempo de clases, la suplantación de la problemática antiguo legado de la fecha y la hora de clases.

    calcular la diferencia en días entre dos fechas (tener un 0 componente de tiempo)

    La LocalDate clase representa una fecha valor solo sin la hora del día y sin zona horaria.

    La ChronoUnit enum tiene un poco de práctica de métodos tales como la entre.

    En la definición de espacios de tiempo, el de java.clases de tiempo de utilizar la Mitad del enfoque Abierto, donde el principio es incluido mientras que el final es exclusivo.

    LocalDate start = LocalDate.of( 2017 , Month.JANUARY , 23 );
    LocalDate stop = LocalDate.of( 2017 , Month.FEBRUARY , 17 );
    long daysBetween = ChronoUnit.DAYS.between( start , stop );

    Puede representar ese lapso de tiempo como un objeto, utilizando el Plazo clase.

    Period p = Period.between( start , stop );

    Acerca de java.tiempo

    La java.tiempo marco está construido en Java 8 y versiones posteriores. Estas clases suplantar la problemática de edad legado fecha y hora de las clases, tales como java.util.Fecha, Calendario, & SimpleDateFormat.

    La Joda-El Tiempo proyecto, ahora en el modo de mantenimiento, asesora de la migración a la java.tiempo clases.

    Para obtener más información, consulte la Oracle Tutorial. Y la búsqueda de Desbordamiento de Pila, hay muchos ejemplos y explicaciones. La especificación es JSR 310.

    Dónde obtener el java.clases de tiempo?

    La ThreeTen-Extra proyecto se extiende java.tiempo con clases adicionales. Este proyecto es un terreno de prueba para posibles futuras incorporaciones a java.tiempo. Usted puede encontrar algunos de clases útiles aquí como Intervalo, YearWeek, YearQuarter, y más.

    OriginalEl autor Basil Bourque

Dejar respuesta

Please enter your comment!
Please enter your name here