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