Sonntag, Dezember 8, 2019

C# Neuling, mit DateTime-variable möchte ich auf null gesetzt

Habe ich ein output-Daten-Klasse mit einer DateTime-variable. Ich möchte klar, dass ein null-Wert in eine loader-Klasse, aber der compiler beschwert sich mit:

Konvertieren kann null “ – System.Daten.Zeit“, weil Sie einen null-Wert geben.

Ich verstehe das, aber wenn ich ändern Sie den Typ auf DateTime? erstellen der nullable-Typ-wrapper, den ich bekommen:

Keine überladung für die Methode ‚ToString‘ takes ‚1‘ arguments

Habe ich ein output-Zeile.

ACCOUNT_ESTABLISHED_DATE.ToString(„yyyy-MM-dd“)

Also die Frage ist, wenn ich die DateTime-als null-Werte zulässt, wie bekomme ich um die Tatsache, dass nicht mehr verhält wie ein DateTime-Wert, hat der formatierte ToString verfügbar?

InformationsquelleAutor John Putnam | 2009-10-15

10 Kommentare

  1. 8

    Verwenden Sie die Eigenschaft Value, so:

    DateTime? dt = DateTime.Now; //or whatever
    MessageBox.Show(dt.Value.ToString(...));
    • Denken Sie daran zu berücksichtigen, für die Möglichkeit der dt.HasValue == false
    • Es ist so viel einfacher, in Java. Aber Danke, ich habe ACCOUNT_ESTABLISHED_DATE == null ? „“ : ACCOUNT_ESTABLISHED_DATE.Wert.ToString(„yyyy-MM-dd“) zu löschen, das Problem
  2. 2

    versuchen

    ACCOUNT_ESTABLISHED_DATE.Value.ToString("yyyy-MM-dd")

    Benötigen Sie den Zugriff auf den eigentlichen Wert mit dem ‚Value‘ – Eigenschaft des nullable-Typ.

    Sollten Sie sicherstellen, dass ‚Wert‘ enthält etwas ersten Tests der ACCOUNT_ESTABLISHED_DATE.HasValue-Eigenschaft.

    HTH

  3. 1

    Wann immer Sie wickeln etwas Nullable<> (das ist, was du tust mit DateTime?), die Sie benötigen, zu tun obj.Value.ToString().

  4. 1

    .NET nicht eine Methode aus der box für diese. Würden Sie brauchen, um eine helper-Methode wie:

    public string Format(DateTime? date, string format)
    {
        if (date == null)
            return string.Empty;
    
        return date.Value.ToString(format);
    }

    Oder noch besser, eine Erweiterung Methode für DateTime?:

    public static class DateTimeExtensionMethods
    {
        public static string ToString(this DateTime? date, string format)
        {
            if (date == null)
                return string.Empty;
    
            return date.Value.ToString(format);
        }
    }

    Dann nutzen Sie Ihre Erweiterung-Methode verwenden, verwenden Sie einfach den code, den Sie haben in Ihrer Frage und stellen Sie sicher, dass der namespace, der DateTimeExtensionMethods importiert Sie in Ihre Klasse.

  5. 1

    sind Sie auf der Suche nach

    DateTime? dt = new DateTime();

    oder

    Nullable<DateTime> dt = new DateTime();
    ACCOUNT_ESTABLISHED_DATE.Value.ToString("yyyy-MM-dd");
    • Nein. Die Frage nochmal Lesen.
  6. 0

    Mussten Sie

    dt.HasValue ? dt.Value.ToString("...") : dt.ToString();

    Dies ist, weil Nullable<T> ist eine richtige Art in seinem eigenen Recht deren ToString() Methode ist schon schön gemacht, wie es mit der null Fall gut. Aber, um auf das zugrunde liegende null-Objekt, verwenden Sie den Value Eigenschaft. Aber dann müssen Sie prüfen, für null (oder HasValue) selbst.

  7. 0
      string strDate = string.Empty;
      if(ACCOUNT_ESTABLISHED_DATE != null)
      {
      strDate = ACCOUNT_ESTABLISHED_DATE.Value.ToString("yyyy-MM-dd");
     }
    
      or you can use null collacing operator
    
      DateTime newDate  = ACCOUNT_ESTABLISHED_DATE ?? new Date();
    
       newDate.ToString("yyyy-MM-dd");

Kostenlose Online-Tests

Letzte Fragen

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile... var TableRow = Marionette.ItemView.extend({ tagName:...

Wie kann ich untersuchen, WCF was 400 bad request über GET?

Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client: AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int...

Bei der Verwendung von UUIDs, sollte ich auch mit AUTO_INCREMENT?

Wir bauen eine neue web-app, die eine offline-iPad - /Android-app-version auf einer Reihe von lokalen Geräten, die Einsätze mit neuen Daten. Als solche benötigen...

Actionscript-Objekt, das verschiedene Eigenschaften

Wie kann ich die Anzahl der Eigenschaften in einer generischen Actionscript-Objekt? (Wie die Array-Länge) InformationsquelleAutor Fragsworth | 2011-01-15

Wie plot mehrere Graphen und nutzen Sie die Navigations-Taste im [matplotlib]

Die neueste version von matplotlib erstellt automatisch Navigations-buttons unter den graph. Aber die Beispiele, die ich finden alles im Internet zeigen, wie erstellen Sie...