Mein String-Format ist: M/d/yyyy h: m: s aaConvert String Format in ein anderes Datumsformat
Jetzt will ich es ändern in yyyy-MM-TTThh: mm: ss-Format.
Wie kann ich es in diesem Format ändern. Bitte sagen Sie mir die passende Lösung
Mein String-Format ist: M/d/yyyy h: m: s aaConvert String Format in ein anderes Datumsformat
Jetzt will ich es ändern in yyyy-MM-TTThh: mm: ss-Format.
Wie kann ich es in diesem Format ändern. Bitte sagen Sie mir die passende Lösung
Verfahren getConvertedDate(String)
, wird für die Umwandlung in ein Nur-Text-Parsing tun.
private String getConvertedDate(String inputDate) {
// extract and adjust Month
int index = inputDate.indexOf('/');
String month = inputDate.substring(0, index);
if (month.length() < 2) {
month = "0" + month;
}
// extract and adjust Day
inputDate = inputDate.substring(index + 1);
index = inputDate.indexOf('/');
String day = inputDate.substring(0, index);
if (day.length() < 2) {
day = "0" + day;
}
// extract Year
inputDate = inputDate.substring(index + 1);
index = inputDate.indexOf(' ');
String year = inputDate.substring(0, index);
// extract Hour
inputDate = inputDate.substring(index + 1);
index = inputDate.indexOf(':');
String hour = inputDate.substring(0, index);
// extract and adjust Minute
inputDate = inputDate.substring(index + 1);
index = inputDate.indexOf(':');
String minute = inputDate.substring(0, index);
if (minute.length() < 2) {
minute = "0" + minute;
}
// extract and adjust Second
inputDate = inputDate.substring(index + 1);
index = inputDate.indexOf(' ');
String second = inputDate.substring(0, index);
if (second.length() < 2) {
second = "0" + second;
}
// extract AM/PM marker
// adjust hour, +12 for PM
inputDate = inputDate.substring(index + 1);
String am_pm_marker = inputDate.substring(0);
if (am_pm_marker.equalsIgnoreCase("pm")) {
int hourValue = 0;
try {
hourValue = Integer.parseInt(hour);
} catch (Exception e) {
}
hourValue += 12;
hour = "" + hourValue;
if (hour.length() < 2) {
hour = "0" + hour;
}
} else {
if (hour.length() < 2) {
hour = "0" + hour;
}
}
String outputDate = year + "-" + month + "-" + day;
outputDate += "T" + hour + ":" + minute + ":" + second;
return outputDate;
}
Beispiel Ein- und Ausgang:
String input = "04/01/2012 9:55:47 pm";
System.out.println("Output: " + getConvertedDate(input));
// Output: 2012-04-01T21:55:47
Ich habe bereits die gleiche Methode verwendet. Anyways danke für Ihre Antwort. – AnkitRox
Grundsätzlich das erste SimpleDateFormat erkennt Ihr ursprüngliches Format und analysiert es in ein Datum. Dann formatiert das zweite das Datumsobjekt zu dem, was Sie brauchen.
Ich habe keine jdk um hier zu testen, aber es sollte funktionieren.
prüfen diese Links für Format Syntax, falls etwas nicht funktioniert:
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
API-Dokumentation Sie sich beziehen, sind für Java SE während Frage ist ** Java ME **, die nicht 'SimpleDateFormat' haben (J2ME CLDC 1.0 und 1.1 hat sicherlich nicht) – gnat
"Simple (" M/d/yyyy h : m: s aa "). parse()" Die Methode "parse" ist für die SimpleDateFormat-Klasse nicht verfügbar. – AnkitRox
@AnkitRox, können Sie die Antwort http://stackoverflow.com/questions/9892156/blackberry-how-to-convert-time-from-string-in-hhhhmmss-ss-to-mmss-format überprüfen. Ich denke, 'M/d/yyyy h: m: s aa' ist keine üblichen Muster für die Verwendung von HttpDateParser, http://www.blackberry.com/developers/docs/6.0.0api/net/rim/device/api /io/http/HttpDateParser.html. – Rupak
Sie müssen das * Quelle * Datum selbst analysieren (mit Hilfe von 'HttpDateParser') konstruiert ein' Calendar' Objekt aus dem analysierten Datum und dann geben sie auf 'SimpleDateFormat.format()' Methode, um es neu zu formatieren sie Ihre Bedürfnisse nach. – mrvincenzo
Eigentlich könnte es in Ihrem Fall einfacher sein, es direkt neu zu formatieren (mit Methoden zur String-Manipulation). – mrvincenzo