cadafecha・tiempocadenajava.util.Fecha,,java.util.Calendarioconvertir a
Todo en Javafecha, cadena de tiempo, si es posible java.util.Calendario ,, java.util.Fecha Este es un programa de muestra para convertir a tipo.
Para la conversión, primero formatee la cadena de fecha/hora predeterminada y luego java.util.Calendario Convertir a tipo. Si la conversión no es posible, se lanzará una excepción IllegalArgumentException.
También,java.util.Fecha Utilice el método getTime() de la clase Calendar para convertir a tipo.
Los formatos de fecha que se pueden convertir son los siguientes.
programa de muestra
int yyyy = Integer.parseInt(strDate.substring(0,4));
int MM = Integer.parseInt(strDate.substring(5,7));
int dd = Integer.parseInt(strDate.substring(8,10));
int HH = cal.get(Calendario.HOUR_OF_DAY);
int mm = cal.get(Calendario.MINUTO);
int ss = cal.get(Calendario.SEGUNDO);
int SSS = cal.get(Calendario.MILLISECOND);
cal.clear();
cal.set(aaaa,MM-1,dd);
int len = strDate.length();
cambiar (len) {
caso 10:
romper;
caso 16: // aaaa/MM/dd HH:mm
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
cal.set(Calendario.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
romper;
caso 19: //aaaa/MM/dd HH:mm:ss
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
cal.set(Calendario.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
cal.set(Calendario.SEGUNDO,ss);
romper;
caso 23: //aaaa/MM/dd HH:mm:ss.SSS
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
SSS = Integer.parseInt(strDate.substring(20,23));
cal.set(Calendario.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
cal.set(Calendario.SEGUNDO,ss);
cal.set(Calendario.MILLISECOND,SSS);
romper;
por defecto :
lanzar una nueva IllegalArgumentException(
“Cadena de argumento[“+ strFecha +
“] no se puede convertir en una cadena de fecha”);
}
devolver llamada;
}
/**
* Formato de fecha/hora predeterminado para varias cadenas de fecha/hora
Convertir a *.
*
* ●El formato de fecha predeterminado es el siguiente.
* Sólo para fecha: aaaa/MM/dd
* Para fecha + hora: aaaa/MM/dd HH:mm:ss.SSS
*
* @param str Cadena para convertir
* @return Formato predeterminado de fecha/hora
* @throws IllegalArgumentException
* Si la cadena de fecha no se puede convertir
*/
formato de cadena estática privada (String str) {
if (cadena == nulo || str.trim().length() < 8) {
lanzar una nueva IllegalArgumentException(
“Cadena de argumento [“+ str +
“] no se puede convertir en una cadena de fecha”);
}
cadena = cadena.trim();
Cadena yyyy = nulo; Cadena MM = nulo; Cadena dd = nulo;
Cadena HH = nula; Cadena mm = nula;
Cadena ss = nulo; Cadena ss = nulo;
// Si falta "-" o "/"
si (str.indexOf(“/”)==-1 && str.indexOf(“-“)==-1) {
si (cadena.longitud() == 8) {
yyyy = str.substring(0,4);
MM = str.substring(4,6);
dd = str.substring(6,8);
devolver aaaa+”/”+MM+”/”+dd;
}
yyyy = str.substring(0,4);
MM = str.substring(4,6);
dd = str.substring(6,8);
HH = str.substring(9,11);
mm = str.substring(12,14);
ss = str.substring(15,17);
return aaaa+”/”+MM+”/”+dd+” “+HH+”:”+mm+”:”+ss;
}
Token StringTokenizer = new StringTokenizer(str,”_/-:. “);
Resultado de StringBuffer = nuevo StringBuffer();
for(int i = 0; token.hasMoreTokens(); i++) {
Temperatura de cadena = token.nextToken();
cambiar(i){
caso 0:// parte del año
yyyy = fillString(cadena, temperatura, “L”, “20”, 4);
resultado.append(aaaa);
romper;
caso 1:// parte del mes
MM = llenarCadena(cadena, temperatura, “L”, “0”, 2);
resultado.append(“/”+MM);
romper;
caso 2:// parte del día
dd = fillString(cadena, temperatura, “L”, “0”, 2);
resultado.append(“/”+dd);
romper;
caso 3:// parte del tiempo
HH = llenarCadena(cadena, temperatura, “L”, “0”, 2);
resultado.append(” “+HH);
romper;
caso 4:// parte minuto
mm = fillString(cadena, temperatura, “L”, “0”, 2);
resultado.append(“:”+mm);
romper;
caso 5:// segunda parte
ss = fillString(cadena, temperatura, “L”, “0”, 2);
resultado.append(“:”+ss);
romper;
caso 6:// parte de milisegundos
SSS = fillString(cadena, temperatura, “R”, “0”, 3);
resultado.append(“.”+SSS);
romper;
}
}
devolver resultado.toString();
}
Cadena estática privada fillString (String strDate, String str,
Posición de la cadena, Cadena addStr,
longitud interna){
si (cadena.longitud() > len) {
lanzar una nueva IllegalArgumentException(
“Cadena de argumento[“+ strFecha +
“] no se puede convertir en una cadena de fecha”);
}
devolver cadena de relleno (cadena, posición, len, agregar cadena);
}
/**
* Agregue la cadena [addStr] que se agregará a la cadena [str]
* Insertar en [posición] hasta llenar [len].
*
* *Incluso si [str] es nulo o un literal vacío, use [addStr]
* Devuelve el resultado insertado hasta completar [len].
* @param str cadena de destino
* @param position Insertar antes de ⇒ L o l Insertar después de ⇒ R o r
* @param len Número de dígitos a reponer
* @param addStr Cadena para insertar
* @return La cadena después de la conversión.
*/
cadena estática privada fillString (cadena cadena, posición de la cadena,
longitud interna,
Cadena agregarStr) {
si (addStr == nulo || addStr.length() == 0) {
lanzar una nueva excepción IllegalArgumentException
(“El valor de la cadena a insertar no es válido. addStr=”+addStr);
}
si (cadena == nulo) {
cadena = “”;
}
Búfer StringBuffer = nuevo StringBuffer(str);
mientras (len > buffer.length()) {
si (posición.equalsIgnoreCase(“l”)) {
int suma = buffer.length() + addStr.length();
si (suma > len) {
agregarStr = agregarStr.subcadena
(0,addStr.length() – (suma – len));
buffer.insert(0, addStr);
}demás{
buffer.insert(0, addStr);
}
} demás {
buffer.append(addStr);
}
}
si (buffer.length() == len) {
devolver buffer.toString();
}
devolver buffer.toString().substring(0, len);
}
Resultado de la ejecución
◆Ejemplo de ejecución
// patrón aaaa-MM-dd
cal = toCalendar(“2007-01-01”);
fecha = cal.getTime();
System.out.println(“[2007-01-01] = '”+fecha+”’”);
// patrón aaaaMMdd
cal = toCalendar(“20070101”);
fecha = cal.getTime();
System.out.println(“[20070101] = '”+fecha+”’”);
// patrón aa-MM-dd
cal = toCalendar(“07-01-01”);
fecha = cal.getTime();
System.out.println(“[07-01-01] = '”+fecha+”’”);
System.out.println(“\n—– Fecha+Hora ————————–“);
// patrón de aaaa/MM/dd HH:mm:ss
cal = toCalendar(“2007/01/01 12:00:00”);
fecha = cal.getTime();
System.out.println(“[2007/01/01 12:00:00] = '”+fecha+”’”);
// patrón de aaaaMMdd HH:mm:ss
cal = toCalendar(“20070101 12:00:00”);
fecha = cal.getTime();
System.out.println(“[20070101 12:00:00] = '”+fecha+”’”);
// patrón de aaaa/MM/dd HH:mm
cal = toCalendar(“2007/01/01 12:00”);
fecha = cal.getTime();
System.out.println(“[2007/01/01 12:00] = '”+fecha+”’”);
System.out.println(“\n—– Sólo tiempo —————————“);
// Patrón de HH:mm:ss. *Si solo se usa la hora, agregue la fecha al frente.
cal = al calendario (
nuevo SimpleDateFormat(“aaaa/MM/dd”).formato(nueva Fecha()) +
” 12:00:00″);
fecha = cal.getTime();
System.out.println(“[12:00:00] = '”+fecha+”’”);
}
◆Resultado de salida
----- Sólo fecha --------------------------- [01/01/2007] = 'lunes 01 de enero 00:00: 00 JST 2007' [2007-01-01] = 'lunes 01 de enero 00:00:00 JST 2007' [20070101] = 'lunes 01 de enero 00:00:00 JST 2007' [07-01-01] = 'lunes 01 de enero 00:00:00 JST 2007' ----- Fecha+Hora -------------------------- [01/01/2007 12:00:00] = 'lunes 01 de enero 12:00:00 JST 2007' [20070101 12:00:00] = 'lunes 01 de enero 12:00:00 JST 2007' [2007/01/01 12:00] = 'Lunes 01 de enero 12:00:00 JST 2007' ----- Sólo hora --------------------------- [12: 00:00] = 'Miércoles 06 de junio 12:00:00 JST 2007'
Este programa de muestra es para Chat&Messenger.Función de gestión de calendario/horario"En realidad se utiliza.