SimpleDateFormat es una clase para resolver nuestro problema de formato de hora.
SimpleDateFormat es una clase concreta para formatear y analizar fechas de manera dependiente de la configuración regional. Permite formatear (fecha->texto), analizar (texto->fecha) y normalizar. SimpleDateFormat permite la selección de cualquier patrón de formato de fecha y hora definido por el usuario.
Patrones de fecha y hora Los formatos de fecha y hora se especifican mediante cadenas de patrones de fecha y hora. En las cadenas de patrones de fecha y hora, las letras sin comillas de la 'A' a la 'Z' y de la 'a' a la 'z' se interpretan como letras de patrón y se utilizan para representar elementos de cadena de fecha u hora. El texto se puede incluir entre comillas simples (') para evitar interpretaciones. "''" representa una comilla simple. Todos los demás caracteres no se interpretan; simplemente se copian en la cadena de salida durante el formateo o se comparan con la cadena de entrada durante el análisis.
Se definen los siguientes patrones de letras (todos los demás caracteres 'A' a 'Z' y 'a' a 'z' están reservados):
ejemplo de representación de elemento de fecha u hora de letra
G Identificador de época Texto AD
Año y Año 1996;
M mes en año Mes julio 07;
w Número de semanas en el año Número 27
W Número de semanas en el mes Número 2
D Número de días del año Número 189
d Número de días del mes Número 10
F Semana del mes Número 2
E Día de la semana Texto Martes;
a Am/pm Texto del marcador PM
H Hora del día (0-23) Número 0
k Hora del día (1-24) Número 24
Número de horas en K am/pm (0-11) Número 0
h Hora en am/pm (1-12) Número 12
m Número de minutos en una hora Número 30
s Segundos en minutos Número 55
S Número de milisegundos Número 978
z Zona horaria Zona horaria general Hora estándar del Pacífico; GMT-08:00;
Zona horaria Z Zona horaria RFC 822 -0800
El siguiente ejemplo muestra cómo interpretar patrones de fecha y hora en la configuración regional de EE. UU. La fecha y hora indicadas son 2001-07-04 12:08:56 hora local en la zona horaria del Pacífico de los Estados Unidos.
Resultados del patrón de fecha y hora
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD a las 12:08:56 PDT
"EEE, MMM d, ''yy" miércoles, 4 de julio de 2001
"h:mma" 12:08 p.m.
"hh 'o''clock' a, zzzz" 12 en punto p. m., hora de verano del Pacífico
"K: mm a, z" 0:08 p. m., PDT
"aaaaa.MMMMM.dd GGG hh:mm aaa" 02001.julio.04 d.C. 12:08 p.m.
"EEE, d MMM yyyy HH:mm:ss Z" Miércoles, 4 de julio de 2001 12:08:56 -0700
"aaMMddHHmmssZ" 010704120856-0700
"aaaa-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
Ejemplos prácticos de aplicación de SimpleDateFormat en programación:
(1) Formato (Fecha->Texto)
Generalmente, la fecha y hora más utilizadas en chino son: 20070719 20:29:30
Formateador SimpleDateFormat = new SimpleDateFormat("aaaaMMdd hh:mm:ss");
System.out.println("Fecha a cadena "+formater.format(nueva fecha()));
Formas comunes similares incluyen yyMMdd hh:mm:ss yyyy-MM-dd hh:mm:ss dd-MM-yyyy hh:mm:ss
Pero vale la pena señalar que este formato (19JUL07) y sus formas similares tienen un pequeño truco 19JUL07
Formateador SimpleDateFormat = new SimpleDateFormat("ddMMMyy",,new Locale("US"))
System.out.println("Fecha a cadena "+formater.format(nueva fecha()).toUpperCase());
Como está en inglés, se debe utilizar el parámetro del objeto Locale; de lo contrario, se utiliza la configuración regional predeterminada.
(2) Análisis (Texto->Fecha)
En términos generales, puede utilizar cualquier forma de fecha y hora y parámetros de texto que desee para obtener la hora en el formato deseado. Por ejemplo, 2007-7-19 devolverá un objeto de hora de tipo java.util.Date y las horas. , minutos y segundos se completarán con 0.
formateador = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
intentar...{
System.out.println("Cadena hasta la fecha "+formater.parse("2007sep01"));
} captura (ParseException e) ...{
e.printStackTrace();
}
En particular,
formateador = new SimpleDateFormat("yyyyMMMdd",new Locale("US"));
intentar...{
System.out.println("Cadena hasta la fecha "+formater.parse("2007sep01"));
} captura (ParseException e) ...{
e.printStackTrace();
}
También devuelve un objeto de fecha de tipo java.util.Date, con horas, minutos y segundos rellenados con 0.
(3) Texto -> Marca de tiempo, Fecha -> Marca de tiempo
Marca de tiempo t;
Formato SimpleDateFormat = nuevo SimpleDateFormat("aaaa-MM-dd hh:mm:ss");
intentar...{
t = nueva marca de tiempo(format.parse("2007-07-19 00:00:00").getTime());
} captura (ParseException e) ...{
e.printStackTrace();
}
Marca de tiempo t;
Formato SimpleDateFormat = nuevo SimpleDateFormat("aaaa-MM-dd hh:mm:ss");
t = nueva marca de tiempo (nueva fecha().getTime