Freigeben über


Konvertieren von Datums- und Uhrzeitwerten

Letzte Änderung: Donnerstag, 15. April 2010

Gilt für: SharePoint Foundation 2010

Microsoft SharePoint Foundation speichert Datums- und Uhrzeitwerte im UTC-Format (Coordinated Universal Time), und nahezu alle Datums- und Uhrzeitwerte, die von Elementen des Objektmodells zurückgegeben werden, haben das UTC-Format. Die einzige Ausnahme bilden Listenspaltenwerte, die über die Indexerstellung für die SPListItem-Klasse abgerufen werden, die in der Ortszeit der Website formatiert sind. Verwenden Sie die DatesInUtc-Eigenschaft der SPQuery-Klasse, damit bei der Indexerstellung Werte im UTC-Format zurückgegeben werden.

Verwenden Sie zum Konvertieren von Werten aus dem UTC-Format in die Ortszeit die UTCToLocalTime-Methode der SPTimeZone-Klasse, auf die über die RegionalSettings-Eigenschaft der aktuellen Website wie folgt zugegriffen werden kann: mySite.RegionalSettings.TimeZone.UtcTimeToLocalTime(date). Verwenden Sie zum Konvertieren von Werten aus der Ortszeit in das UTC-Format die LocalTimeToUTC-Methode.

Zusätzlich zur Konvertierung zwischen dem Orts- und UTC-Zeitformat müssen Sie ggf. auch Konvertierungen zwischen Datums- und Uhrzeitformaten durchführen, z. B. vom ISO8601-Format (YYYY-MM-DDTHH:MM:SSZ) in das System.DateTime-Format (mm/tt/jjjj hh:mm:ss AM oder PM) oder umgekehrt. Die SPUtility-Klasse bietet mehrere Methoden zum Konvertieren oder Ändern des Formats von Datums- und Uhrzeitwerten, so z. B. die Folgenden:

  • CreateISO8601DateTimeFromSystemDateTime – vom System.DateTime-Format in das DateTime-Format ISO8601 (jjjj-mm-ttThh:mm:ssZ). Diese Methode ist z. B. hilfreich, wenn eine Abfrage mit einem Filter erstellt wird, der auf einem System.DateTime-Wert basiert. Das folgende Beispiel gibt alle Elemente in einer Dokumentbibliothek zurück, die in den letzten fünf Tagen geändert wurden.

    Dim query As New SPQuery()
    
    query.Query = 
        String.Format("<Where><Gt><FieldRef Name='Modified'/>" _
        & "<Value Type='DateTime' 
        StorageTZ='TRUE'>{0}</Value></Gt></Where>", _
        SPUtility.CreateISO8601DateTimeFromSystemDateTime
        (DateTime.UtcNow.AddDays(-5)))
    
    SPQuery query = new SPQuery();
    
    query.Query = 
        String.Format("<Where><Gt><FieldRef Name='Modified'/>" +
        "<Value Type='DateTime' 
        StorageTZ='TRUE'>{0}</Value></Gt></Where>",
        SPUtility.CreateISO8601DateTimeFromSystemDateTime
        (DateTime.UtcNow.AddDays(-5)));
    

    In diesem Beispiel konvertiert die CreateISO8601DateTimeFromSystemDateTime-Methode einen DateTime-Wert in das ISO8601-Format für die Verwendung in einer Abfragezeichenfolge in CAML (Collaborative Application Markup Language). Die Format-Methode von System.String fügt den konvertierten Wert in die Abfragezeichenfolge ein.

  • CreateSystemDateTimeFromXmlDataDateTimeFormat – vom DateTime-Format ISO8601 in das System.DateTime-Format (das Gegenstück zur vorherigen Methode).

    Sie können diese Methode beispielsweise in einem Ereignishandler einer Dokumentbibliothek verwenden, durch den benutzerdefinierte DateTime-Spaltenwerte über die Eigenschaften PropertiesBefore und PropertiesAfter der SPListEvent-Klasse als Zeichenfolgen im ISO8601-Format zurückgegeben werden. Diese Methode dient zum Konvertieren der Zeichenfolgen in einen DateTime-Wert.

  • FormatDate – vom System.DateTime-Format in ein angegebenes SPDateFormat-Format mithilfe der aktuellen regionalen Einstellungen der Website.

  • ParseDate – von den angegebenen Zeichenfolgen mit Datums- und Uhrzeitwerten in ein System.DateTime-Objekt mithilfe der aktuellen regionalen Einstellungen der Website.

Siehe auch

Konzepte

Gewusst wie: Festlegen der Kultur und Sprache

SharePoint-Entwicklungsaufgaben - Gewusst wie...

Arbeiten mit Listenobjekten und Auflistungen