¿Cómo convierto la fecha actual en una cadena en Java?
¿Cómo convierto la fecha actual en una cadena en Java?
Respuestas:
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
// GET DATE & TIME IN ANY FORMAT
import java.util.Calendar;
import java.text.SimpleDateFormat;
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
Tomado de aqui
Calendar
más deseable que Date
?
// On the form: dow mon dd hh:mm:ss zzz yyyy
new Date().toString();
Utilice una DateFormat
implementación; ej SimpleDateFormat
.
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
String data = df.format(new Date());
LocalDate.now()
.toString()
2017-01-23
Es mejor especificar explícitamente la zona horaria deseada / esperada.
LocalDate.now( ZoneId.of( "America/Montreal" ) )
.toString()
La forma moderna a partir de Java 8 y versiones posteriores es con el marco java.time .
Especifique la zona horaria, ya que la fecha varía en todo el mundo en un momento dado.
ZoneId zoneId = ZoneId.of( "America/Montreal" ) ; // Or ZoneOffset.UTC or ZoneId.systemDefault()
LocalDate today = LocalDate.now( zoneId ) ;
String output = today.toString() ;
2017-01-23
De forma predeterminada, obtiene una cadena en formato estándar ISO 8601 .
Para otros formatos use la java.time.format.DateTimeFormatter
clase.
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como java.util.Date
, Calendar
, ySimpleDateFormat
.
El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .
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 se necesitan cuerdas, no se necesitan java.sql.*
clases.
¿Dónde obtener las clases java.time?
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Usted puede encontrar algunas clases útiles aquí, como Interval
, YearWeek
, YearQuarter
, y más .
Más rápido :
String date = FastDateFormat.getInstance("dd-MM-yyyy").format(System.currentTimeMillis( ));
Para un tiempo como AAAA-MM-dd
String time = new DateTime( yourData ).toString("yyyy-MM-dd");
Y la biblioteca de DateTime es:
import org.joda.time.DateTime;
DateTime
? Una respuesta sobre el desbordamiento de pila debe tener alguna explicación, ya que este sitio está destinado a ser más que una biblioteca de fragmentos.
La mayoría de las respuestas son / fueron válidas. La nueva modificación de la API de JAVA para el manejo de fechas aseguró que se redujera alguna ambigüedad anterior en el manejo de fechas de Java.
Recibirá un mensaje obsoleto para llamadas similares.
new Date() // deprecated
La llamada anterior hizo que el desarrollador asumiera que un nuevo objeto Date dará al objeto Date con la marca de tiempo actual. Este comportamiento no es coherente en otras clases de API de Java.
La nueva forma de hacer esto es usando la Instancia de Calendario .
new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime()
Aquí también la convención de nomenclatura no es perfecta, pero está muy organizada. Para una persona como yo que tiene dificultades para asaltar cosas pero que nunca olvidaría algo si suena / parece lógico, este es un buen enfoque.
Esto es más sinónimo de la vida real.
Una forma más de hacer esto es usando Joda Time API
new DateTime().toString("yyyy-MM-dd")
o lo más obvio
new DateTime(Calendar.getInstance().getTime()).toString("yyyy-MM-dd")
ambos devolverán el mismo resultado.
java.util.Date
, java.util.Calendar
y java.text.SimpleTextFormat
ahora están legado , suplantados por los java.time clases. Además, el proyecto Joda-Time está ahora en modo de mantenimiento , y el equipo aconseja la migración a java.time.
Clock
implementación en Java 8 es exactamente la misma que la de las clases heredadas. Solo en Java 9 llega una nueva implementación, capaz de capturar el momento actual con una resolución tan fina como nanosegundos.
public static Date getDateByString(String dateTime) {
if(dateTime==null || dateTime.isEmpty()) {
return null;
}
else{
String modified = dateTime + ".000+0000";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date dateObj = new Date();
Date dateObj1 = new Date();
try {
if (dateTime != null) {
dateObj = formatter.parse(modified);
}
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
}
String
formato a su función.