Heim > Java > javaLernprogramm > Warum löst DateFormat die Ausnahme „Das gegebene Objekt kann nicht als Datum formatiert werden' aus?

Warum löst DateFormat die Ausnahme „Das gegebene Objekt kann nicht als Datum formatiert werden' aus?

Linda Hamilton
Freigeben: 2024-11-03 07:14:03
Original
390 Leute haben es durchsucht

Why Does DateFormat Throw a

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>
Nach dem Login kopieren

In diesem Code:

  • inputFormat wird verwendet, um die Eingabezeichenfolge in ein Date-Objekt zu analysieren.
  • outputFormat wird dann verwendet, um das Date-Objekt im gewünschten Format „MM/JJJJ“ zu formatieren.
  • Der Code behandelt potenzielle ParseException-Ausnahmen beim Parsen der Eingabezeichenfolge.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage