tl; dr
Instant.now().getEpochSecond() // The number of seconds from the Java epoch of 1970-01-01T00:00:00Z.
detalles
Como otros han dicho, un número entero 32-bit no puede contener un número suficiente de grandes el número de segundos de la época (comienzo de 1970 en UTC) y ahora. Necesita 64-bit entero (una primitiva long
o Long
objeto).
java.time
Las otras respuestas están utilizando legado clases de fecha y hora de edad. Han sido suplantados por las clases java.time.
La clase Instant
representa un momento en la línea de tiempo en UTC con una resolución de nanoseconds.
Instant now = instant.now() ;
Puede consultar la cantidad de milisegundos desde la época. Tenga cuidado con esto significa una pérdida de datos, truncando nanosegundos a milisegundos.
long millisecondsSinceEpoch = now.toEpochMilli() ;
Si quieres un recuento de nanosegundos desde el periodo, que se necesitan para hacer un poco de matemáticas como la clase carece de un método extraño toEpochNano
. Tenga en cuenta el L
agregado a los mil millones para provocar el cálculo como enteros largos de 64 bits.
long nanosecondsSinceEpoch = (instant.getEpochSecond() * 1_000_000_000L) + instant.getNano() ;
segundos enteros desde el periodo
pero el final de la pregunta pide un número de 10 dígitos. Sospecho que eso significa un conteo de entero segundos desde la época de 1970-01-01T00: 00: 00. Esto se conoce comúnmente como Unix Time o Posix Time.
Podemos interrogar al Instant
para obtener este número. De nuevo, esto significa una pérdida de datos con el truncamiento de cualquier fracción de segundo que este objeto pueda contener.
long secondsSinceEpoch = now.getEpochSecond() ; // The number of seconds from the Java epoch of 1970-01-01T00:00:00Z.
O/P es: Entero: 1293630553, larga: 1345618394201, Fecha larga: Mar Ago 22 de 2012 12:23:14 IST, Int Fecha: Vie Ene 16 de 1970 04:50:30 IST –
Creo que dio salida incorrecta en la pregunta –
Disculpe por mi error ... Ahora lo cambio – Bathakarai