formato entre ejemplo diferencia create java date datetime timestamp

java - entre - timestamp to date



¿Cómo obtener la marca de tiempo actual en formato de cadena en Java? "Aaaa.MM.dd.HH.mm.ss" (5)

Use java.sql solo para la transferencia de la base de datos

Los tipos java.sql, como java.sql.Timestamp , solo se deben usar para la transferencia dentro y fuera de la base de datos. Convierta inmediatamente a tipos java.time en Java 8 y posterior.

java.time.Instant

Un java.sql.Timestamp asigna a un java.time.Instant , un momento en la línea de tiempo en UTC.

java.sql.Timestamp ts = myResultSet.getTimestamp( … ); Instant instant = ts.toInstant();

Zona horaria

Aplique la zona horaria deseada / esperada para obtener un ZonedDateTime .

ZoneId zoneId = ZoneId.of( "America/Montreal" ); ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId );

Cuerdas formateadas

Use un DateTimeFormatter para generar su cadena. Los códigos de patrón son similares a los de java.text.SimpleDateFormat pero no exactamente, así que lea el documento con cuidado.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "uuuu.MM.dd.HH.mm.ss" ); String output = zdt.format( formatter );

Este formato particular es ambiguo en cuanto a su significado exacto ya que carece de cualquier indicación de offset-from-UTC o zona horaria.

ISO 8601

Si tiene algo que decir al respecto, le sugiero que considere usar los formatos estándar ISO 8601 en lugar de hacer los suyos propios. El formato estándar es bastante similar al tuyo. Por ejemplo:
2016-02-20T03:26:32+05:30 .

Las clases java.time usan estos formatos estándar de forma predeterminada, por lo que no es necesario especificar un patrón. La clase ZonedDateTime amplía el formato estándar al agregar el nombre de la zona horaria (una mejora inteligente).

String output = zdt.toString(); // Example: 2007-12-03T10:15:30+01:00[Europe/Paris]

Convierte a java.sql

Puede convertir de java.time a java.sql.Timestamp . Extraiga un Instant de ZonedDateTime .

Se han agregado nuevos métodos a las clases antiguas para facilitar la conversión a / desde clases java.time.

java.sql.Timestamp ts = java.sql.Timestamp.from( zdt.toInstant() );

¿Cómo obtener la marca de tiempo en formato de cadena en Java? "aaaa.MM.dd.HH.mm.ss"

String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Timestamp());

Esto es lo que tengo, pero Timestamp () requiere un parámetro ...


Puede utilizar java.util.Date en lugar de Timestamp:

String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date());


Reemplazar

new Timestamp();

con

new java.util.Date()

porque no hay un constructor predeterminado para Timestamp , o puedes hacerlo con el método:

new Timestamp(System.currentTimeMillis());


Un enfoque más apropiado es especificar una región Locale como un parámetro en el constructor. El siguiente ejemplo usa una región de configuración regional de EE. UU. El formato de fecha es sensible a la configuración regional y utiliza la configuración regional para adaptar la información relativa a las costumbres y convenciones de la región del usuario Configuración regional (plataforma Java SE 7)

String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss", Locale.US).format(new Date());


Use la clase java.util.Date lugar de Timestamp.

String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date());

Esto te dará la fecha actual en el formato especificado.