¿Cómo puedo hacer el cálculo en un tiempo de la época de encargo? No es la época UNIX

bengongon97:

Estoy recibiendo datos de un servidor en segundos y quiero convertirlo hasta la fecha.

Pero los segundos que estoy recibiendo no es desde la época UNIX 01/01/1970, pero es 01/01/2000.

Normalmente yo uso:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
String dateString = formatter.format(new Date(millisToConvert));

Donde millisConvert se convierte-a-milisegundos segundo que recibo. Pero ahora, como es natural, me sale fechas equivocadas desde el origen es diferente. ¿Cómo cambio la época (el origen)?

Albahaca Bourque:

tl; dr

OffsetDateTime.of( 2000 , 1 , 1 , 0 , 0 , 0 , 0 , ZoneOffset.UTC )  // Define your epoch reference moment. 
.pluSeconds( yourSeconds )  // Add the number of seconds given to you. Returns another `OffsetDateTime` object rather than altering the original (immutable objects pattern).  
.toLocalDate()     // Extract a date-only value without time-of-day and without offset-from-UTC. 

java.time

Utilizar las modernas java.time clases que suplantado las clases heredadas viejos terribles tales como Datey Calendar.

Instant

Una Instantrepresenta un momento en UTC.

Definir su referencia época de fecha y hora en particular.

Instant epoch = Instant.parse( "2000-01-01T00:00Z" ) ;

Añadir su número de segundos.

Instant later = epoch.plusSeconds( yourSecondsGoHere ) ; 

OffsetDateTime

Si desea un valor de sólo fecha sin la hora del día y sin zona horaria, el uso LocalDatede clase. En primer lugar, convertir del tipo básico Instanta la más flexible OffsetDateTime, especificando la constante ZoneOffset.UTCcomo el offset.

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;

LocalDate

Extraer el valor de fecha-solamente.

LocalDate ld = odt.toLocalDate() ;

Tabla de tipos de fecha y hora en Java, a la vez moderno y legado


sobre java.time

El java.time marco está construido en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como java.util.Date, Calendar, y SimpleDateFormat.

La Joda-Time proyecto, ahora en modo de mantenimiento , asesora a la migración a los java.time clases.

Para obtener más información, consulte el Tutorial de Oracle . Y la búsqueda de desbordamiento de pila durante muchos ejemplos y explicaciones. Especificación es JSR 310 .

Es posible intercambiar java.time objetos directamente con su base de datos. Utilizar un controlador JDBC compatible con JDBC 4.2 o posterior. No hay necesidad de cadenas, sin necesidad de java.sql.*clases.

Dónde obtener las clases java.time?

introducir descripción de la imagen aquí

El ThreeTen-Extra proyecto se extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles futuras adiciones a java.time. Usted puede encontrar algunas clases útiles aquí, como Interval, YearWeek, YearQuarter, y más .

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=189372&siteId=1
Recomendado
Clasificación