ognidata・tempocordajava.util.Date,,java.util.Calendarconvertire in
Tutto in Javadata, stringa dell'ora, se possibile java.util.Calendar ,, java.util.Date Questo è un programma di esempio da convertire in tipo.
Per la conversione, formattare prima la stringa di data/ora predefinita, quindi java.util.Calendar Converti in tipo. Se la conversione non è possibile, verrà lanciata un'IllegalArgumentException
Inoltre,java.util.Date Utilizza il metodo getTime() della classe Calendar per convertire in tipo.
I formati di data che possono essere convertiti sono i seguenti.
programma di esempio
int aaaa = 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(Calendar.HOUR_OF_DAY);
int mm = cal.get(Calendario.MINUTO);
int ss = cal.get(Calendar.SECOND);
int SSS = cal.get(Calendar.MILLISECOND);
cal.clear();
cal.set(aaaa,MM-1,gg);
int len = strDate.length();
interruttore (lente) {
caso 10:
rottura;
caso 16: // aaaa/MM/gg HH:mm
HH = Integer.parseInt(strDate.substring(11,13));
mm = Integer.parseInt(strDate.substring(14,16));
cal.set(Calendar.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
rottura;
caso 19: //aaaa/MM/gg 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(Calendar.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
cal.set(Calendario.SECOND,ss);
rottura;
caso 23: //aaaa/MM/gg 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(Calendar.HOUR_OF_DAY,HH);
cal.set(Calendario.MINUTO,mm);
cal.set(Calendario.SECOND,ss);
cal.set(Calendario.MILLISECONDI,SSS);
rottura;
predefinito :
lancia una nuova IllegalArgumentException(
"Stringa argomento["+ strDate +
“] non può essere convertito in una stringa di data”);
}
restituire cal;
}
/**
* Formato data/ora predefinito per varie stringhe di data/ora
Convertire in *.
*
* ●Il formato data predefinito è il seguente.
* Solo per la data: aaaa/MM/gg
* Per data + ora: aaaa/MM/gg HH:mm:ss.SSS
*
* @param str Stringa da convertire
* @return Formato data/ora predefinito
* @genera IllegalArgumentException
* Se la stringa della data non può essere convertita
*/
formato stringa statica privata(String str){
if (str == null || str.trim().length() < 8) {
lancia una nuova IllegalArgumentException(
"Stringa di argomento ["+ str +
“] non può essere convertito in una stringa di data”);
}
str = str.trim();
Stringa aaaa = null; Stringa MM = null; Stringa gg = null;
Stringa HH = nullo; Stringa mm = nullo;
Stringa ss = null;Stringa ss = null;
// Se manca "-" o "/".
if (str.indexOf(“/”)==-1 && str.indexOf(“-“)==-1) {
if (str.lunghezza() == 8) {
aaaa = str.sottostringa(0,4);
MM = str.sottostringa(4,6);
dd = str.sottostringa(6,8);
return aaaa+”/”+MM+”/”+gg;
}
aaaa = str.sottostringa(0,4);
MM = str.sottostringa(4,6);
dd = str.sottostringa(6,8);
HH = str.sottostringa(9,11);
mm = str.sottostringa(12,14);
ss = str.sottostringa(15,17);
return aaaa+”/”+MM+”/”+gg+” “+HH+”:”+mm+”:”+ss;
}
Token StringTokenizer = new StringTokenizer(str,”_/-:. “);
Risultato StringBuffer = new StringBuffer();
for(int i = 0; token.hasMoreTokens(); i++) {
Stringa temp = token.nextToken();
scambia(i){
caso 0:// anno parte
aaaa = fillString(str, temp, “L”, “20”, 4);
risultato.append(aaaa);
rottura;
caso 1:// mese parte
MM = fillString(str, temp, “L”, “0”, 2);
risultato.append(“/”+MM);
rottura;
caso 2://giorno parte
gg = fillString(str, temp, “L”, “0”, 2);
risultato.append(“/”+dd);
rottura;
caso 3://parte temporale
HH = fillString(str, temp, “L”, “0”, 2);
risultato.append(” “+HH);
rottura;
caso 4://minuta parte
mm = fillString(str, temp, “L”, “0”, 2);
risultato.append(“:”+mm);
rottura;
caso 5://seconda parte
ss = fillString(str, temp, “L”, “0”, 2);
risultato.append(“:”+ss);
rottura;
caso 6:// millisecondo parte
SSS = fillString(str, temp, “R”, “0”, 3);
risultato.append(“.”+SSS);
rottura;
}
}
restituisce risultato.toString();
}
private static String fillString(String strDate, String str,
Posizione della stringa, String addStr,
len int){
if (str.lunghezza() > len) {
lancia una nuova IllegalArgumentException(
"Stringa argomento["+ strDate +
“] non può essere convertito in una stringa di data”);
}
return fillString(str, posizione, len,addStr);
}
/**
* Aggiungere la stringa [addStr] da aggiungere alla stringa [str]
* Inserire in [posizione] fino a riempire [len].
*
* *Anche se [str] è null o un letterale vuoto, utilizzare [addStr]
* Restituisce il risultato inserito finché [len] non viene riempito.
* @param str stringa di destinazione
* @param position Inserisci prima ⇒ L o l Inserisci dopo ⇒ R o r
* @param len Numero di cifre da ricostituire
* @param addStr Stringa da inserire
* @return La stringa dopo la conversione.
*/
private static String fillString(String str, Posizione stringa,
lente intera,
Stringa addStr) {
if (addStr == null || addStr.length() == 0) {
lancia una nuova IllegalArgumentException
(“Il valore della stringa da inserire non è valido. addStr="+addStr);
}
se (str == null) {
str = “”;
}
Buffer StringBuffer = new StringBuffer(str);
while (len > buffer.lunghezza()) {
if (position.equalsIgnoreCase("l")) {
int somma = buffer.length() + addStr.length();
if (somma > lente) {
addStr = addStr.sottostringa
(0,addStr.length() – (somma – len));
buffer.insert(0, addStr);
}altro{
buffer.insert(0, addStr);
}
} altro {
buffer.append(addStr);
}
}
if (buffer.lunghezza() == lunghezza) {
restituisce buffer.toString();
}
restituisce buffer.toString().substring(0, len);
}
Risultato dell'esecuzione
◆Esempio di esecuzione
// modello aaaa-MM-gg
cal = toCalendar(“2007-01-01”);
data = cal.getTime();
System.out.println(“[2007-01-01] = '”+data+”’”);
//modello aaaaMMgg
cal = aCalendario("20070101");
data = cal.getTime();
System.out.println(“[20070101] = '”+data+”’”);
// modello aa-MM-gg
cal = aCalendario("07-01-01");
data = cal.getTime();
System.out.println(“[07-01-01] = '”+data+”’”);
System.out.println(“\n—– Data+Ora ————————–“);
// modello di aaaa/MM/gg HH:mm:ss
cal = toCalendar("2007/01/01 12:00:00");
data = cal.getTime();
System.out.println(“[2007/01/01 12:00:00] = '”+data+”’”);
// modello di aaaaMMgg HH:mm:ss
cal = toCalendar(“20070101 12:00:00”);
data = cal.getTime();
System.out.println(“[20070101 12:00:00] = '”+data+”’”);
// modello di aaaa/MM/gg HH:mm
cal = toCalendar("2007/01/01 12:00");
data = cal.getTime();
System.out.println(“[2007/01/01 12:00] = '”+data+”’”);
System.out.println(“\n—– Solo tempo —————————“);
// Modello di HH:mm:ss. *Se viene utilizzata solo l'ora, aggiungere la data davanti.
cal = aCalendario(
new SimpleDateFormat(“aaaa/MM/gg”).format(new Date()) +
” 12:00:00″);
data = cal.getTime();
System.out.println(“[12:00:00] = '”+data+”’”);
}
◆Risultato dell'output
----- Solo data --------------------- [01/01/2007] = 'Lun 01 gen 00:00: 00 JST 2007' [2007-01-01] = 'Lun Gen 01 00:00:00 JST 2007' [20070101] = 'Lun Gen 01 00:00:00 JST 2007' [07-01-01] = 'Lun 01 gennaio 00:00:00 JST 2007' ----- Data+Ora -------------------------- [2007/01/01 12:00:00] = 'Lun 01 gen 12:00:00 JST 2007' [20070101 12:00:00] = 'Lun 1 gen 12:00:00 JST 2007' [2007/01/01 12:00] = 'Lun 01 Gen 12:00:00 JST 2007' ----- Solo tempo --------------------- [12: 00:00] = 'Mer 6 Giu 12:00:00 JST 2007'
Questo programma di esempio è per Chat&Messenger.Funzione di gestione del calendario/programmazione" è effettivamente utilizzato.