jedenDatum・ZeitZeichenfolgejava.util.Datum,,java.util.Calendarkonvertieren zu
Alles in JavaDatum, Zeitzeichenfolge, wenn möglich java.util.Calendar ,, java.util.Datum Dies ist ein Beispielprogramm zum Konvertieren in Typ.
Formatieren Sie für die Konvertierung zunächst die Standardzeichenfolge für Datum und Uhrzeit java.util.Calendar In Typ konvertieren. Wenn die Konvertierung nicht möglich ist, wird eine IllegalArgumentException ausgelöst
Auch,java.util.Datum Verwenden Sie zum Konvertieren in einen Typ die Methode getTime() der Calendar-Klasse.
Folgende Datumsformate können konvertiert werden.
Beispielprogramm
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(Calendar.HOUR_OF_DAY);
int mm = cal.get(Calendar.MINUTE);
int ss = cal.get(Calendar.SECOND);
int SSS = cal.get(Calendar.MILLISECOND);
cal.clear();
cal.set(yyyy,MM-1,dd);
int len = strDate.length();
Schalter (len) {
Fall 10:
brechen;
Fall 16: // jjjj/MM/tt 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(Calendar.MINUTE,mm);
brechen;
Fall 19: //jjjj/MM/tt 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(Calendar.MINUTE,mm);
cal.set(Calendar.SECOND,ss);
brechen;
Fall 23: //yyyy/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(Calendar.HOUR_OF_DAY,HH);
cal.set(Calendar.MINUTE,mm);
cal.set(Calendar.SECOND,ss);
cal.set(Calendar.MILLISECOND,SSS);
brechen;
Standard :
wirf eine neue IllegalArgumentException(
„Argument string[“+ strDate +
„] kann nicht in eine Datumszeichenfolge konvertiert werden“);
}
return cal;
}
/**
* Standard-Datums-/Uhrzeitformat für verschiedene Datums-/Uhrzeitzeichenfolgen
Konvertieren zu *.
*
* ●Das Standarddatumsformat ist wie folgt.
* Nur für Datum: jjjj/MM/tt
* Für Datum + Uhrzeit: jjjj/MM/tt HH:mm:ss.SSS
*
* @param str String zum Konvertieren
* @return Standardformat für Datum und Uhrzeit
* @throws IllegalArgumentException
* Wenn die Datumszeichenfolge nicht konvertiert werden kann
*/
privates statisches String-Format(String str){
if (str == null || str.trim().length() < 8) {
wirf eine neue IllegalArgumentException(
„Argument string [“+ str +
„] kann nicht in eine Datumszeichenfolge konvertiert werden“);
}
str = str.trim();
String yyyy = null; String MM = null; String dd = null;
Zeichenfolge HH = null; Zeichenfolge mm = null;
String ss = null;String ss = null;
// Wenn „-“ oder „/“ fehlt
if (str.indexOf(“/”)==-1 && str.indexOf(“-“)==-1) {
if (str.length() == 8) {
yyyy = str.substring(0,4);
MM = str.substring(4,6);
dd = str.substring(6,8);
return yyyy+“/“+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 yyyy+“/“+MM+“/“+dd+“ „+HH+“:“+mm+“:“+ss;
}
StringTokenizer token = new StringTokenizer(str“,_/-:. „);
StringBuffer result = new StringBuffer();
for(int i = 0; token.hasMoreTokens(); i++) {
String temp = token.nextToken();
switch(i){
Fall 0:// Jahresteil
yyyy = fillString(str, temp, „L“, „20“, 4);
result.append(yyyy);
brechen;
Fall 1:// Monatsteil
MM = fillString(str, temp, „L“, „0“, 2);
result.append(“/”+MM);
brechen;
Fall 2:// Tagesteil
dd = fillString(str, temp, „L“, „0“, 2);
result.append(“/”+dd);
brechen;
Fall 3:// Zeitteil
HH = fillString(str, temp, „L“, „0“, 2);
result.append(“ „+HH);
brechen;
Fall 4:// Minutenteil
mm = fillString(str, temp, „L“, „0“, 2);
result.append(“:”+mm);
brechen;
Fall 5:// zweiter Teil
ss = fillString(str, temp, „L“, „0“, 2);
result.append(“:”+ss);
brechen;
Fall 6:// Millisekundenteil
SSS = fillString(str, temp, „R“, „0“, 3);
result.append(“.”+SSS);
brechen;
}
}
return result.toString();
}
privater statischer String fillString(String strDate, String str,
String-Position, String addStr,
int len){
if (str.length() > len) {
wirf eine neue IllegalArgumentException(
„Argument string[“+ strDate +
„] kann nicht in eine Datumszeichenfolge konvertiert werden“);
}
return fillString(str, position, len,addStr);
}
/**
* Fügen Sie die Zeichenfolge [addStr] hinzu, die der Zeichenfolge [str] hinzugefügt werden soll.
* An [Position] einfügen, bis [Länge] gefüllt ist.
*
* *Auch wenn [str] null oder ein leeres Literal ist, verwenden Sie [addStr]
* Gibt das eingefügte Ergebnis zurück, bis [len] gefüllt ist.
* @param str Zielzeichenfolge
* @param position Einfügen vor ⇒ L oder l Einfügen nach ⇒ R oder r
* @param len Anzahl der aufzufüllenden Ziffern
* @param addStr String zum Einfügen
* @return Der String nach der Konvertierung.
*/
privater statischer String fillString(String str, String-Position,
int len,
String addStr) {
if (addStr == null || addStr.length() == 0) {
wirft eine neue IllegalArgumentException
(„Der Wert der einzufügenden Zeichenfolge ist ungültig. addStr=“+addStr);
}
if (str == null) {
str = „“;
}
StringBuffer buffer = new StringBuffer(str);
while (len > buffer.length()) {
if (position.equalsIgnoreCase(“l”)) {
int sum = buffer.length() + addStr.length();
if (sum > len) {
addStr = addStr.substring
(0,addStr.length() – (sum – len));
buffer.insert(0, addStr);
}anders{
buffer.insert(0, addStr);
}
} anders {
buffer.append(addStr);
}
}
if (buffer.length() == len) {
return buffer.toString();
}
return buffer.toString().substring(0, len);
}
Ausführungsergebnis
◆Ausführungsbeispiel
// JJJJ-MM-TT-Muster
cal = toCalendar(“2007-01-01”);
date = cal.getTime();
System.out.println(“[2007-01-01] = '“+Datum+“’“);
//yyyyMMdd Muster
cal = toCalendar(“20070101”);
date = cal.getTime();
System.out.println(“[20070101] = '“+Datum+“’“);
// JJ-MM-TT-Muster
cal = toCalendar(“07-01-01”);
date = cal.getTime();
System.out.println(“[07-01-01] = '“+Datum+“’“);
System.out.println(“\n—– Datum+Uhrzeit ————————–“);
// Muster von jjjj/MM/tt HH:mm:ss
cal = toCalendar(“01.01.2007 12:00:00”);
date = cal.getTime();
System.out.println(“[01.01.2007 12:00:00] = '“+Datum+“’“);
// Muster von yyyyMMdd HH:mm:ss
cal = toCalendar(“20070101 12:00:00”);
date = cal.getTime();
System.out.println(“[20070101 12:00:00] = '“+Datum+“’“);
// Muster von jjjj/MM/tt HH:mm
cal = toCalendar(“01.01.2007 12:00”);
date = cal.getTime();
System.out.println(“[01.01.2007 12:00] = '“+Datum+“’“);
System.out.println(“\n—– Nur Zeit —————————“);
// Muster von HH:mm:ss. *Wenn nur die Uhrzeit verwendet wird, fügen Sie das Datum voran.
cal = toCalendar(
neues SimpleDateFormat(“yyyy/MM/dd”).format(new Date()) +
” 12:00:00″);
date = cal.getTime();
System.out.println(“[12:00:00] = '“+Datum+“’“);
}
◆Ausgabeergebnis
----- Nur Datum ------------ [01.01.2007] = 'Mo. 01. Jan. 00:00: 00 JST 2007' [2007-01-01] = 'Mo 1. Januar 00:00:00 JST 2007' ----- Datum+Uhrzeit -------------------------- [01.01.2007 12:00:00] = 'Mo 1. Januar 12:00:00 JST 2007' [20070101 12:00:00] = 'Mo 1. Januar 12:00:00 JST 2007' [01.01.2007 12:00] = 'Mon. Jan. 01 12:00:00 JST 2007' ----- Nur Zeit --------------------------- [12: 00:00] = „Mittwoch, 6. Juni, 12:00:00 JST 2007“
Dieses Beispielprogramm ist für Chat&Messenger.Kalender-/Zeitplanverwaltungsfunktion„wird tatsächlich verwendet.