+1 Esto fue muy útil. Siendo nuevos, son todos estos pequeños detalles que necesitamos ... Estoy usando Calendar para obtener la fecha juliana. Mucho más fácil que obtener milisegundos y descubrir si el valor es igual hoy;)
Bill Mote
99
Pero, ¿de dónde saca esto la fecha y la hora? ¿El dispositivo Android se está configurando?
Kyle Clegg
12
@Kyle Sí, se basa en la configuración de hora / zona horaria del dispositivo. Cita del documento : "El método getInstance del calendario devuelve un calendario cuya configuración regional se basa en la configuración del sistema y cuyos campos de tiempo se han inicializado con la fecha y hora actuales" - (arriba de la primera línea de código de muestra en la documentación de la clase).
3
+1 esta solución tiene una precisión de milisegundos, justo lo que necesitaba.
Igor Zelaya
42
Como dice @adamdport, esto en realidad no responde la pregunta ... Calendar.getInstance().getTime()o Calendar.getInstance().getTimeInMillis()funcionará.
La clase Time es un reemplazo más rápido para las clases java.util.Calendar y java.util.GregorianCalendar. Una instancia de la clase Time representa un momento en el tiempo, especificado con una segunda precisión.
NOTA 1:
Han pasado varios años desde que escribí esta respuesta, y se trata de una clase antigua, específica de Android y ahora en desuso. Google ahora dice que "[t] su clase tiene varios problemas y se recomienda que se use GregorianCalendar ".
NOTA 2: Aunque la Timeclase tiene un toMillis(ignoreDaylightSavings)método, esto es simplemente una conveniencia para pasar a métodos que esperan tiempo en milisegundos. El valor del tiempo solo es preciso a un segundo ; la porción de milisegundos es siempre 000. Si en un bucle lo haces
Time time =newTime(); time.setToNow();Log.d("TIME TEST",Long.toString(time.toMillis(false)));...do something that takes more than one millisecond, but less than one second ...
La secuencia resultante repetirá el mismo valor, por ejemplo 1410543204000, hasta que 1410543205000comience el siguiente segundo, momento en el que comenzará a repetirse.
@InsanityOnABun y Muhammad Babar. No no no. Los doctores dicen "especificado con una segunda precisión" ¡ Incluso la prueba más simple (obtener la hora actual en un bucle, a Milis y registrar / imprimir el resultado) le habría mostrado que el tiempo resultante tiene 000 como milisegundos!
ToolmakerSteve
3
@IgorZelaya Si desea una precisión de milisegundos, probablemente esté haciendo intervalos de tiempo , en lugar de la hora del día. Los documentos de Android se recomiendan SystemClock.uptimeMillis()para intervalos de tiempo. Dado que eso es lo que usan la mayoría de las funciones integradas, existe una fuerte motivación para que se implemente bien en todos los dispositivos. Vea la discusión en SystemClock ... Si desea correlacionar eso con la hora del día, en onResume de la aplicación, lea esto y Time / setToNow / toMillis. Recuerda la diferencia entre esos.
> Esta clase fue desaprobada en el nivel 22 de la API. Utilice GregorianCalendar en su lugar. Ver aquí
Neo
En realidad, GregorianCalendarfue suplantado hace años en Java y en Android posterior por las clases java.time , específicamente ZonedDateTime. Para Android anterior, vea los proyectos ThreeTen-Backport y ThreeTenABP .
Basil Bourque
367
Si desea obtener la fecha y la hora en un patrón específico, puede usar lo siguiente:
Esto le dará el tiempo en UTC, debe adoptar las zonas horarias.
Andras Balázs Lajtha
10
Cuidado, SimpleDateFormat puede ser problemático si el rendimiento es un problema. En mi aplicación, tenía una vista personalizada que tenía alrededor de 20 etiquetas HH: MM que representaban tiempos específicos (enteros largos que contenían milisegundos) y un número igual de recursos extraíbles. Las pruebas iniciales mostraron que la interacción no era tan fluida como quería. Cuando perfilé onDraw () descubrí que las llamadas de SimpleTimeFormatter tomaban el 80% del tiempo. De hecho, estoy leyendo esta página como parte de una búsqueda de un formateador más eficiente y para aprender más sobre calendarios, etc.
William T. Mallard
3
Sí, pero ya no. No me di cuenta de la sobrecarga involucrada y asumí que era más o menos un POJO.
William T. Mallard
32
En resumen:String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
Pratik Butani
44
puedes insertar sdf.setTimeZone(TimeZone.getDefault())en el medio
Harvey
231
Para aquellos que prefieren un formato personalizado, pueden usar:
DateFormat df =newSimpleDateFormat("EEE, d MMM yyyy, HH:mm");String date = df.format(Calendar.getInstance().getTime());
Mientras que puede tener patrones DateFormat como:
"yyyy.MM.dd G 'at' HH:mm:ss z"----2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz"-----------12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
En realidad, es más seguro configurar la zona horaria actual establecida en el dispositivo Time.getCurrentTimezone(), o de lo contrario obtendrá la hora actual en UTC.
Time today =newTime(Time.getCurrentTimezone());
today.setToNow();
Luego, puede obtener todos los campos de fecha que desee, como, por ejemplo:
textViewDay.setText(today.monthDay +"");// Day of the month (1-31)
textViewMonth.setText(today.month +"");// Month (0-11)
textViewYear.setText(today.year +"");// Year
textViewTime.setText(today.format("%k:%M:%S"));// Current time
Como muchas personas señalan, Google dice que esta clase tiene una serie de problemas y que ya no se debe usar:
Esta clase tiene varios problemas y se recomienda utilizar GregorianCalendar en su lugar.
Problemas conocidos:
Por razones históricas cuando se realizan cálculos de tiempo, toda la aritmética se realiza actualmente utilizando enteros de 32 bits. Esto limita el rango de tiempo confiable representable desde 1902 hasta 2037. Consulte el artículo de wikipedia sobre el problema del año 2038 para obtener más detalles. No confíe en este comportamiento; Puede cambiar en el futuro. Llamar a switchTimezone (String) en una fecha que no puede existir, como una hora de la pared que se omitió debido a una transición DST, dará como resultado una fecha en 1969 (es decir, -1 o 1 segundo antes del 1 de enero de 1970 UTC). Gran parte del formato / análisis asume texto ASCII y, por lo tanto, no es adecuado para su uso con secuencias de comandos que no sean ASCII.
ZonedDateTime.now(ZoneId.of("America/Montreal"))// In a particular time zone
Detalles
Las otras respuestas, aunque correctas, están desactualizadas. Las antiguas clases de fecha y hora han demostrado ser pobremente diseñadas, confusas y problemáticas.
java.time
Esas viejas clases han sido suplantadas por el marco java.time .
Un Instantes un momento en la línea de tiempo en UTC con una resolución de hasta nanosegundos .
Instant instant =Instant.now();// Current moment in UTC.
Zona horaria
Aplicar una zona horaria ( ZoneId) para obtener unZonedDateTime . Si omite la zona horaria, la zona horaria predeterminada actual de su JVM se aplica implícitamente. Es mejor especificar explícitamente la zona horaria deseada / esperada.
ZoneId zoneId =ZoneId.of("America/Montreal");// Or "Asia/Kolkata", "Europe/Paris", and so on.ZonedDateTime zdt =ZonedDateTime.ofInstant( instant , zoneId );
Generando cadenas
Puede generar fácilmente una Stringrepresentación textual del valor de fecha y hora. Puede utilizar un formato estándar, su propio formato personalizado o un formato localizado automáticamente.
ISO 8601
Puede llamar a los toStringmétodos para obtener formato de texto utilizando el estándar ISO 8601 común y sensible .
String output = instant.toString();
2016-03-23T03: 09: 01.613Z
Tenga en cuenta que para ZonedDateTime, el toStringmétodo extiende el estándar ISO 8601 agregando el nombre de la zona horaria entre corchetes. Información extremadamente útil e importante, pero no estándar.
Especifique a Localepara un idioma humano (inglés, francés , etc.) para traducir el nombre del día / mes y también para definir normas culturales como el orden del año, el mes y la fecha. Tenga en cuenta que Localeno tiene nada que ver con la zona horaria.
formatter = formatter.withLocale(Locale.US );// Or Locale.CANADA_FRENCH or such.String output = zdt.format( formatter );
Localización
Mejor aún, deje que java.time haga el trabajo de localización automáticamente.
DateTimeFormatter formatter =DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM );String output = zdt.format( formatter.withLocale(Locale.US ));// Or Locale.CANADA_FRENCH and so on.
Para obtener más información, consulte el Tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
Puede intercambiar objetos java.time directamente con su base de datos. Utilice un controlador JDBC compatible con JDBC 4.2 o posterior. No hay necesidad de cadenas, no hay necesidad de java.sql.*clases.
@ giraffe.guru Releer mi respuesta. Te perdiste la tercera bala. Gran parte de la funcionalidad java.time se transfiere a Java 6 y 7 en ThreeTen-Backport y se adapta aún más a Android en ThreeTenABP .
Basil Bourque
Instant.now()y ZonedDateTime.now()se requiere API 26
Ryde
2
@Ryde Como le dije a giraffe.guru, relee mi respuesta. Busque la tercera viñeta que menciona "Android".
Basil Bourque
Creo que tiene razón: su nueva tabla de edición java.time transmite el mensaje más directa y fácilmente que una lista de viñetas. Si ese fuera yo, creo que complicaría las cosas un poco más y pondría una marca de verificación entre paréntesis (o algo similar) en ThreeTenBackport / Java 8+ y también en ThreeTenABP / Android 26+ ya que estas combinaciones funcionan, solo hay Por lo general, no tiene sentido usarlos. Se están desarrollando aplicaciones de Android que usan ThreeTenABP y apuntan a una gama de niveles de API de Android tanto por encima como por debajo del nivel 26. Me parece que los desarrolladores eligen bien en estos casos.
Ole VV
1
@ OleV.V. Gracias por sugerir una marca de verificación secundaria en la tabla gráfica. Lo he estado usando en versiones posteriores de la tabla. Mucho mejor.
Basil Bourque
52
Para obtener la hora actual, puede usar System.currentTimeMillis()cuál es estándar en Java. Luego puedes usarlo para crear una fecha
Date currentDate =newDate(System.currentTimeMillis());
Y como lo mencionaron otros para crear un tiempo
Time currentTime =newTime();
currentTime.setToNow();
No hay necesidad de System.currentTimeMillis(); simplemente new Date()hace lo mismo .
Jonik
@Jonik Cannot resolve constructor Date()en Android, el SDK de Android utiliza una mezcla de Java 6 y 7.
surfer190
1
Gracias. Date currentDate = new Date(System.currentTimeMillis());es correcto
mghhgm
@mghhgm No, new Date(System.currentTimeMillis())no está bien: (a) es redundante, ya que es exactamente lo mismo que new Date(). (b) La java.util.Dateclase problemática ahora es reemplazada por java.time.InstantJava 8 y posteriores. Retroportado a Java 6 y 7 en el proyecto ThreeTen-Backport , y a Android anterior (<26) en ThreeTenABP .
Basil Bourque
37
Puedes usar el código:
Calendar c =Calendar.getInstance();SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");String strDate = sdf.format(c.getTime());
Salida:
2014-11-1100:47:55
También obtienes más opciones de formato SimpleDateFormatdesde aquí .
¿Cómo puedo obtener la fecha para los próximos 5-10 días? ¿Es el cálculo manual aquí?
Código
@CoDe Usas Fecha para eso
FindOutIslamNow
27
Hay varias opciones, ya que Android es principalmente Java, pero si desea escribirlo en una vista de texto, el siguiente código sería suficiente:
String currentDateTimeString =DateFormat.getDateInstance().format(newDate());// textView is the TextView view that should display it
textView.setText(currentDateTimeString);
Deberías usar Calendaro GregorianCalendar. La Dateclase está en desuso.
Joseph Earl
Gracias amigo :) No tenía ni idea de eso
dLobatog
12
De acuerdo con la documentación de referencia de Date () ( developer.android.com/reference/java/util/Date.html ) no hay nada que se refiera a la clase Date () en desuso, sin embargo, varios métodos y constructores están en desuso.
Zac Seth
2
Esto producirá un resultado incorrecto en el sentido de la configuración actual del usuario (formato de 12/24 horas, por ejemplo). Use android.text.format.DateFormat.getTimeFormat (contexto contextual) para obtener DateFormat para la configuración actual del usuario.
wonder.mice
@Zac tienes razón, incluso el método getTime de Date es aún más uso completo
G Era designator (before christ, after christ)
y Year(e.g.12or2012).Use either yy or yyyy.
M Monthin year.Numberof M's determine length of format (e.g. MM, MMM or MMMMM)
d Day in month. Number of d's determine length of format (e.g. d or dd)
h Hourof day,1-12(AM / PM)(normally hh)
H Hourof day,0-23(normally HH)
m Minutein hour,0-59(normally mm)
s Secondin minute,0-59(normally ss)
S Millisecondin second,0-999(normally SSS)
E Dayin week (e.g Monday,Tuesday etc.)
D Dayin year (1-366)
F Dayof week in month (e.g.1stThursdayofDecember)
w Weekin year (1-53)
W Weekin month (0-5)
a AM / PM marker
k Hourin day (1-24, unlike HH's 0-23)
K Hour in day, AM / PM (0-11)
z Time Zone
Aunque otras respuestas son correctas también. Me gustó esta respuesta, ya que también ayuda a los problemas relacionados con el tiempo. Gracias @Vighnesh KM
No me gusta el acoplamiento estrecho de la lógica de presentación y la lógica de proceso; Preferiría un método que solo formatee y tome un parámetro de entrada de fecha. Tampoco entiendo por qué está usando 2 SimpleDateFormatsy 2 Dates ... ¿no puede simplemente usarlo "yyyy/MM/dd HH:mm"como formato y calendario de llamadas una vez?
AjahnCharles
12
Time time =newTime();
time.setToNow();System.out.println("time: "+ time.hour+":"+time.minute);
if(Build.VERSION.SDK_INT >=Build.VERSION_CODES.O){
val current =LocalDateTime.now()
val formatter =DateTimeFormatter.ofPattern("dd.MM.yyyy. HH:mm:ss")var myDate:String= current.format(formatter)Log.d("Date","DATE : "+ myDate)}else{var date =Date()
val formatter =SimpleDateFormat("MMM dd yyyy HH:mma")
val myDate:String= formatter.format(date)Log.d("Date","DATE : "+ myDate)}
Patrones de formateador de fecha
"yyyy.MM.dd G 'at' HH:mm:ss z"----2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz"-----------12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01
Gracias por querer co contribuir. ¿Contribuyes con algo que no está en las 36 respuestas anteriores? En cualquier caso, todavía está utilizando la SimpleDateFormatclase notoriamente problemática y desactualizada . Incluso antes de Oreo, no es necesario, puede utilizar ThreeTenABP , el backport de java.time, la moderna API de fecha y hora de Java.
Ole VV
11
También puedes usar android.os.SystemClock. Por ejemplo, SystemClock.elapsedRealtime () le dará lecturas de tiempo más precisas cuando el teléfono está dormido.
DateFormat df =newSimpleDateFormat("HH:mm");// Format timeString time = df.format(Calendar.getInstance().getTime());DateFormat df1 =newSimpleDateFormat("yyyy/MM/dd");// Format dateString date = df1.format(Calendar.getInstance().getTime());
Debe usar la clase Calender de acuerdo con la nueva API. La clase de fecha está en desuso ahora.
Calendar cal =Calendar.getInstance();String date =""+cal.get(Calendar.DATE)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.YEAR);String time =""+cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE);
Date date =newDate();SimpleDateFormat dateFormatWithZone =newSimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",Locale.getDefault());String currentDate = dateFormatWithZone.format(date);
Respuestas:
Podrías usar:
Hay muchas constantes en Calendar para todo lo que necesita.
: Editar
Comprobar documentación de la clase Calendario
fuente
Calendar.getInstance().getTime()
oCalendar.getInstance().getTimeInMillis()
funcionará.Puede ( pero ya no debería , ¡vea a continuación!) Usar android.text.format.Time :
De la referencia vinculada anteriormente:
NOTA 1: Han pasado varios años desde que escribí esta respuesta, y se trata de una clase antigua, específica de Android y ahora en desuso. Google ahora dice que "[t] su clase tiene varios problemas y se recomienda que se use GregorianCalendar ".
NOTA 2: Aunque la
Time
clase tiene untoMillis(ignoreDaylightSavings)
método, esto es simplemente una conveniencia para pasar a métodos que esperan tiempo en milisegundos. El valor del tiempo solo es preciso a un segundo ; la porción de milisegundos es siempre000
. Si en un bucle lo hacesLa secuencia resultante repetirá el mismo valor, por ejemplo
1410543204000
, hasta que1410543205000
comience el siguiente segundo, momento en el que comenzará a repetirse.fuente
SystemClock.uptimeMillis()
para intervalos de tiempo. Dado que eso es lo que usan la mayoría de las funciones integradas, existe una fuerte motivación para que se implemente bien en todos los dispositivos. Vea la discusión en SystemClock ... Si desea correlacionar eso con la hora del día, en onResume de la aplicación, lea esto y Time / setToNow / toMillis. Recuerda la diferencia entre esos.GregorianCalendar
fue suplantado hace años en Java y en Android posterior por las clases java.time , específicamenteZonedDateTime
. Para Android anterior, vea los proyectos ThreeTen-Backport y ThreeTenABP .Si desea obtener la fecha y la hora en un patrón específico, puede usar lo siguiente:
O,
Fecha :
Hora:
fuente
String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
sdf.setTimeZone(TimeZone.getDefault())
en el medioPara aquellos que prefieren un formato personalizado, pueden usar:
Mientras que puede tener patrones DateFormat como:
fuente
En realidad, es más seguro configurar la zona horaria actual establecida en el dispositivo
Time.getCurrentTimezone()
, o de lo contrario obtendrá la hora actual en UTC.Luego, puede obtener todos los campos de fecha que desee, como, por ejemplo:
Vea la clase android.text.format.Time para todos los detalles.
ACTUALIZAR
Como muchas personas señalan, Google dice que esta clase tiene una serie de problemas y que ya no se debe usar:
fuente
Para la fecha y hora actuales, use:
Qué salidas:
fuente
Pruebe de esta manera Todos los formatos se dan a continuación para obtener el formato de fecha y hora.
fuente
tl; dr
…o…
Detalles
Las otras respuestas, aunque correctas, están desactualizadas. Las antiguas clases de fecha y hora han demostrado ser pobremente diseñadas, confusas y problemáticas.
java.time
Esas viejas clases han sido suplantadas por el marco java.time .
Estas nuevas clases están inspiradas en el exitoso proyecto Joda-Time , definido por JSR 310 y ampliado por ThreeTen-Extra proyecto .
Vea el Tutorial de Oracle .
Instant
Un
Instant
es un momento en la línea de tiempo en UTC con una resolución de hasta nanosegundos .Zona horaria
Aplicar una zona horaria (
ZoneId
) para obtener unZonedDateTime
. Si omite la zona horaria, la zona horaria predeterminada actual de su JVM se aplica implícitamente. Es mejor especificar explícitamente la zona horaria deseada / esperada.Utilice los nombres propios de la zona horaria en el formato de
continent/region
comoAmerica/Montreal
,Europe/Brussels
oAsia/Kolkata
. Nunca use las abreviaturas de 3-4 letras comoEST
oIST
ya que no están estandarizadas ni son únicas.Generando cadenas
Puede generar fácilmente una
String
representación textual del valor de fecha y hora. Puede utilizar un formato estándar, su propio formato personalizado o un formato localizado automáticamente.ISO 8601
Puede llamar a los
toString
métodos para obtener formato de texto utilizando el estándar ISO 8601 común y sensible .Tenga en cuenta que para
ZonedDateTime
, eltoString
método extiende el estándar ISO 8601 agregando el nombre de la zona horaria entre corchetes. Información extremadamente útil e importante, pero no estándar.Formato personalizado
O especifique su propio patrón de formato particular con la
DateTimeFormatter
clase.Especifique a
Locale
para un idioma humano (inglés, francés , etc.) para traducir el nombre del día / mes y también para definir normas culturales como el orden del año, el mes y la fecha. Tenga en cuenta queLocale
no tiene nada que ver con la zona horaria.Localización
Mejor aún, deje que java.time haga el trabajo de localización automáticamente.
Sobre java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantan a las antiguas clases problemáticas de fecha y hora heredadas como
java.util.Date
,Calendar
, ySimpleDateFormat
.El proyecto Joda-Time , ahora en modo mantenimiento , aconseja la migración a java.time clases .
Para obtener más información, consulte el Tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
Puede intercambiar objetos java.time directamente con su base de datos. Utilice un controlador JDBC compatible con JDBC 4.2 o posterior. No hay necesidad de cadenas, no hay necesidad de
java.sql.*
clases.¿Dónde obtener las clases java.time?
fuente
Instant.now()
yZonedDateTime.now()
se requiere API 26Para obtener la hora actual, puede usar
System.currentTimeMillis()
cuál es estándar en Java. Luego puedes usarlo para crear una fechaY como lo mencionaron otros para crear un tiempo
fuente
System.currentTimeMillis()
; simplementenew Date()
hace lo mismo .Cannot resolve constructor Date()
en Android, el SDK de Android utiliza una mezcla de Java 6 y 7.Date currentDate = new Date(System.currentTimeMillis());
es correctonew Date(System.currentTimeMillis())
no está bien: (a) es redundante, ya que es exactamente lo mismo quenew Date()
. (b) Lajava.util.Date
clase problemática ahora es reemplazada porjava.time.Instant
Java 8 y posteriores. Retroportado a Java 6 y 7 en el proyecto ThreeTen-Backport , y a Android anterior (<26) en ThreeTenABP .Puedes usar el código:
Salida:
También obtienes más opciones de formato
SimpleDateFormat
desde aquí .fuente
java.util.Date
,java.util.Calendar
yjava.text.SimpleDateFormat
ahora son heredadas , suplantadas por las clases java.time integradas en Java 8 y posteriores. Ver Tutorial de Oracle .Fácil, puede analizar el tiempo para obtener valores separados para el tiempo actual, de la siguiente manera:
Lo mismo ocurre con la fecha, de la siguiente manera:
fuente
Hay varias opciones, ya que Android es principalmente Java, pero si desea escribirlo en una vista de texto, el siguiente código sería suficiente:
fuente
Calendar
oGregorianCalendar
. LaDate
clase está en desuso.Patrones de formato de fecha
fuente
fuente
Este es un método que será útil para obtener la fecha y la hora:
Puede llamar a este método y obtener los valores actuales de fecha y hora:
fuente
SimpleDateFormat
sy 2Date
s ... ¿no puede simplemente usarlo"yyyy/MM/dd HH:mm"
como formato y calendario de llamadas una vez?Esto te dará, por ejemplo, 12:32.
Recuerde importar android.text.format.Time;
fuente
fuente
Para la fecha y hora actuales con formato, use
En java
En kotlin
Patrones de formateador de fecha
fuente
SimpleDateFormat
clase notoriamente problemática y desactualizada . Incluso antes de Oreo, no es necesario, puede utilizar ThreeTenABP , el backport de java.time, la moderna API de fecha y hora de Java.También puedes usar android.os.SystemClock. Por ejemplo, SystemClock.elapsedRealtime () le dará lecturas de tiempo más precisas cuando el teléfono está dormido.
fuente
Si necesita la fecha actual:
Si necesita la hora actual:
fuente
Para un formato de fecha y hora personalizado:
La salida es como el siguiente formato: 2015-06-18T10: 15: 56-05: 00
fuente
fuente
Intenta que esto también funcione para mí.
fuente
Puede obtener la fecha usando:
Esto le dará un resultado en una forma agradable, como en este ejemplo: "2014/02/09".
fuente
Time t = new Time();
utilizará la zona horaria predeterminada. En mi experiencia, por defecto == actual.Bueno, tuve problemas con algunas respuestas de la API, así que fusiono este código, espero que les sirva, chicos:
Salida: 03:25 PM - 03/10/2017
fuente
Simplemente puede usar el siguiente código:
fuente
Prueba esto
fuente
El siguiente método devolverá la fecha y hora actuales en String, use una zona horaria diferente según su zona horaria real. He usado GMT
fuente
Debe usar la clase Calender de acuerdo con la nueva API. La clase de fecha está en desuso ahora.
fuente
Intenta usar el siguiente código:
fuente