DateFormat kann String-Objekte nicht formatieren
In Java ist die DateFormat-Klasse speziell für die Formatierung und Analyse von Datumsobjekten und nicht für Strings konzipiert. Der bereitgestellte Code zeigt einen häufigen Fehler, bei dem eine Zeichenfolgendarstellung eines Datums („2012-11-17T00:00:00.000-05:00“) direkt an die Methode DateFormat.format() übergeben wird. Dies führt zur Ausnahme „Das angegebene Objekt kann nicht als Datum formatiert werden“.
Ansatz mit zwei SimpleDateFormat-Objekten
Um dieses Problem zu beheben, müssen zwei SimpleDateFormat-Objekte verwendet werden: eine zum Parsen der Zeichenfolge in ein Date-Objekt und eine andere zum Formatieren des Date-Objekts im gewünschten Format. Der folgende überarbeitete Code behebt das Problem:
<code class="java">import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; public class DateParser { public static void main(String args[]) { String MonthYear = null; String dateformat = "2012-11-17T00:00:00.000-05:00"; SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); try { Date date = inputFormat.parse(dateformat); MonthYear = outputFormat.format(date); System.out.println(MonthYear); } catch (ParseException e) { System.err.println("Invalid date format."); } } }</code>
In diesem Code:
Das obige ist der detaillierte Inhalt vonWarum löst DateFormat die Ausnahme „Das gegebene Objekt kann nicht als Datum formatiert werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!