DateTime DateTime DateTime DateTime Struct

Definition

Stellt einen Zeitpunkt dar, der normalerweise durch Datum und Uhrzeit dargestellt wird.Represents an instant in time, typically expressed as a date and time of day.

public value class DateTime : IComparable, IComparable<DateTime>, IConvertible, IEquatable<DateTime>, IFormattable, System::Runtime::Serialization::ISerializable
[System.Serializable]
public struct DateTime : IComparable, IComparable<DateTime>, IConvertible, IEquatable<DateTime>, IFormattable, System.Runtime.Serialization.ISerializable
type DateTime = struct
    interface IFormattable
    interface IConvertible
    interface ISerializable
Public Structure DateTime
Implements IComparable, IComparable(Of DateTime), IConvertible, IEquatable(Of DateTime), IFormattable, ISerializable
Vererbung
Attribute
Implementiert

Hinweise

Hinweis

Die C#-Beispiele in diesem Artikel werden in der Inlinecodeausführung und dem Playground von Try.NET ausgeführt.The C# examples in this article run in the Try.NET inline code runner and playground. Klicken Sie auf die Schaltfläche Ausführen, um ein Beispiel in einem interaktiven Fenster auszuführen.Select the Run button to run an example in an interactive window. Nachdem Sie den Code ausgeführt haben, können Sie ihn ändern und den geänderten Code durch erneutes Anklicken der Schaltfläche Ausführen ausführen.Once you execute the code, you can modify it and run the modified code by selecting Run again. Der geänderte Code wird entweder im interaktiven Fenster ausgeführt, oder das interaktive Fenster zeigt alle C#-Compilerfehlermeldungen an, wenn die Kompilierung fehlschlägt.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Die lokale Zeitzone der Inlinecodeausführung und dem Playground von Try.NET wird ist die Koordinierte Weltzeit (UTC).The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. Dies kann sich auf das Verhalten und die Ausgabe von Beispielen auswirken, die die Typen DateTime, DateTimeOffset und TimeZoneInfo sowie deren Member veranschaulichen.This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

Dieser Artikel enthält einige Beispiele, in denen die DateTime Typ:This article includes several examples that use the DateTime type:

Beispiele für die InitialisierungInitialization Examples

Formatieren von DateTime Objekte als ZeichenfolgeFormatting DateTime objects as strings

Analysieren von Zeichenfolgen als DateTime ObjekteParsing strings as DateTime objects

DateTime AuflösungDateTime resolution

Kultur und KalenderCulture and calendars

PersistenzPersistence

Dieser Abschnitt enthält Themen, die für viele häufige Verwendungen von der DateTime Struktur:This section contains topics for many common uses of the DateTime struct:

Die DateTime Werttyp stellt Datumsangaben und Zeiten mit Werten zwischen 00:00:00 (Mitternacht) am 1. Januar 0001 nach Christus (Common Era) bis 23:59:59 Uhr, 31. Dezember 9999 n. Chr.The DateTime value type represents dates and times with values ranging from 00:00:00 (midnight), January 1, 0001 Anno Domini (Common Era) through 11:59:59 P.M., December 31, 9999 A.D. (C.E.) im gregorianischen Kalender.(C.E.) in the Gregorian calendar.

Time-Werte werden in so genannten 100-Nanosekunden-Ticks gemessen.Time values are measured in 100-nanosecond units called ticks. Ein bestimmtes Datum wird die Anzahl der Ticks seit 12:00 Mitternacht, 1. Januar 0001 n. Chr.A particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in der GregorianCalendar Kalender.(C.E.) in the GregorianCalendar calendar. Die Anzahl schließt Ticks, die von Schaltsekunden hinzugefügt werden.The number excludes ticks that would be added by leap seconds. Beispielsweise stellt einen Tickswert von 31241376000000000 das Datum Friday, Januar 01, 0100 00:00:00 Uhr.For example, a ticks value of 31241376000000000L represents the date Friday, January 01, 0100 12:00:00 midnight. Ein DateTime Wert wird immer im Kontext einer expliziten oder Standardkalender angegeben.A DateTime value is always expressed in the context of an explicit or default calendar.

Hinweis

Wenn Sie mit einem Tickswert arbeiten, Sie in ein anderes Zeitintervall, wie z. B. Minuten oder Sekunden konvertieren möchten, verwenden Sie die TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecond, oder TimeSpan.TicksPerMillisecond Konstante, um die Konvertierung auszuführen.If you are working with a ticks value that you want to convert to some other time interval, such as minutes or seconds, you should use the TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecond, or TimeSpan.TicksPerMillisecond constant to perform the conversion. Beispielsweise die Anzahl der Sekunden hinzufügen dargestellt, um eine angegebene Anzahl von Ticks zum die Second -Komponente eine DateTime Wert verwenden Sie den Ausdruck dateValue.Second + nTicks/Timespan.TicksPerSecond.For example, to add the number of seconds represented by a specified number of ticks to the Second component of a DateTime value, you can use the expression dateValue.Second + nTicks/Timespan.TicksPerSecond.

Sehen Sie entweder die Quelle für die gesamte Gruppe der Beispiele in diesem Artikel Visual Basic oder c# aus docs-Repository auf GitHub.You can view the source for the entire set of examples from this article in either Visual Basic or C# from the docs repository on GitHub.

Hinweis

Eine Alternative zu den DateTime -Struktur für das Arbeiten mit Datums-und Uhrzeitwerte in bestimmten Zeitzonen ist die DateTimeOffset Struktur.An alternative to the DateTime structure for working with date and time values in particular time zones is the DateTimeOffset structure. Die DateTimeOffset -Struktur speichert Datums-und Uhrzeitinformationen in einem privaten DateTime Feld und die Anzahl der Minuten, die nach dem Datum und Uhrzeit, von UTC abweicht, in einem privaten Int16 Feld.The DateTimeOffset structure stores date and time information in a private DateTime field and the number of minutes by which that date and time differs from UTC in a private Int16 field. Dies ermöglicht es einer DateTimeOffset Wert entsprechend der die Zeit in einer bestimmten Zeitzone, während eine DateTime Wert kann nur UTC und der lokalen Zeitzone eindeutig darstellen.This makes it possible for a DateTimeOffset value to reflect the time in a particular time zone, whereas a DateTime value can unambiguously reflect only UTC and the local time zone's time. Eine Erläuterung zur Verwendung der DateTime Struktur oder das DateTimeOffset Struktur, bei der Arbeit mit Datums-und Uhrzeitwerte, siehe auswählen zwischen DateTime, DateTimeOffset, TimeSpan und TimeZoneInfo.For a discussion about when to use the DateTime structure or the DateTimeOffset structure when working with date and time values, see Choosing Between DateTime, DateTimeOffset, TimeSpan, and TimeZoneInfo.

Initialisieren ein DateTime-ObjektInitializing a DateTime object

Sie können einen Anfangswert zuweisen, um ein neues DateTime Wert auf viele verschiedene Arten:You can assign an initial value to a new DateTime value in many different ways:

  • Aufruf eines Konstruktors, einer, in dem Sie Argumente für die Werte angeben, oder verwenden Sie den impliziten Standardkonstruktor.Calling a constructor, either one where you specify arguments for values, or use the implicit default constructor.
  • Zuweisen einer DateTime auf den Rückgabewert einer Eigenschaft oder Methode.Assigning a DateTime to the return value of a property or method.
  • Analysieren einer DateTime Wert aus seiner Zeichenfolgendarstellung.Parsing a DateTime value from its string representation.
  • Mithilfe von Visual Basic-spezifischen Sprachfeatures Instanziieren einer DateTime.Using Visual Basic-specific language features to instantiate a DateTime.

Die folgenden Codeausschnitte zeigen Beispiele für die einzelnen:The following code snippets show examples of each:

Aufrufen von KonstruktorenInvoke Constructors

Rufen Sie eine der Überladungen der DateTime Konstruktors, der Elemente dem Wert für Datum und Uhrzeit (z. B. das Jahr, Monat und Tag oder die Anzahl der Ticks).You call any of the overloads of the DateTime constructor that specify elements of the date and time value (such as the year, month, and day, or the number of ticks). Der folgende Code erstellt ein bestimmtes Datum unter Verwendung der DateTime Konstruktor angeben, der Jahr, Monat, Tag, Stunde, Minute und Sekunde.The following code creates a specific date using the DateTime constructor specifying the year, month, day, hour, minute, and second.

Dim date1 As New Date(2008, 5, 1, 8, 30, 52)
DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);
Console.WriteLine(date1);

Rufen Sie die DateTime -Struktur impliziten Standardkonstruktor, wenn Sie möchten eine DateTime auf seinen Standardwert initialisiert.You invoke the DateTime structure's implicit default constructor when you want a DateTime initialized to its default value. (Weitere Informationen zu den impliziten Standardkonstruktor eines Werttyps, finden Sie unter Werttypen.) Einige Compiler auch Unterstützung bei der Deklaration einer DateTime Wert ohne explizit einen Wert zuweisen.(For details on the implicit default constructor of a value type, see Value Types.) Some compilers also support declaring a DateTime value without explicitly assigning a value to it. Erstellen einen Wert ohne eine explizite Initialisierung auch führt der Standardwert.Creating a value without an explicit initialization also results in the default value. Das folgende Beispiel veranschaulicht die DateTime impliziten Standardkonstruktor in c# und Visual Basic als auch ein DateTime Deklaration ohne Zuweisung in Visual Basic.The following example illustrates the DateTime implicit default constructor in C# and Visual Basic, as well as a DateTime declaration without assignment in Visual Basic.

Dim dat1 As DateTime
' The following method call displays 1/1/0001 12:00:00 AM.
Console.WriteLine(dat1.ToString(System.Globalization.CultureInfo.InvariantCulture))
' The following method call displays True.
Console.WriteLine(dat1.Equals(Date.MinValue))

Dim dat2 As New DateTime()
' The following method call displays 1/1/0001 12:00:00 AM.
Console.WriteLine(dat2.ToString(System.Globalization.CultureInfo.InvariantCulture))
' The following method call displays True.
Console.WriteLine(dat2.Equals(Date.MinValue))
DateTime dat1 = new DateTime();
// The following method call displays 1/1/0001 12:00:00 AM.
Console.WriteLine(dat1.ToString(System.Globalization.CultureInfo.InvariantCulture));
// The following method call displays True.
Console.WriteLine(dat1.Equals(DateTime.MinValue));

Zuweisen eines berechneten WertsAssigning a computed value

Sie können Zuweisen der DateTime einen Datum und Uhrzeit-Wert einer Eigenschaft oder Methode zurückgegebenes Objekt.You can assign the DateTime object a date and time value returned by a property or method. Das folgende Beispiel weist das aktuelle Datum und Zeit, das aktuelle Datum der koordinierten Weltzeit (Coordinated Universal Time, UTC) und das aktuelle Datum und Zeit auf drei neue DateTime Variablen.The following example assigns the current date and time, the current Coordinated Universal Time (UTC) date and time, and the current date to three new DateTime variables.

Dim date1 As Date = Date.Now
Dim date2 As Date = Date.UtcNow
Dim date3 As Date = Date.Today
DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.UtcNow;
DateTime date3 = DateTime.Today;

Analysieren einer Zeichenfolge, die einen datetime-Wert darstellt.Parsing a string that represents a DateTime

Die Parse, ParseExact, TryParse, und TryParseExact alle Methoden Konvertieren einer Zeichenfolge in ihren entsprechenden Datums- und Uhrzeitwert.The Parse, ParseExact, TryParse, and TryParseExact methods all convert a string to its equivalent date and time value. Die folgenden Beispiele verwenden die Parse und ParseExact Methoden, um eine Zeichenfolge zu analysieren und konvertieren Sie sie in einem DateTime Wert.The following examples use the Parse and ParseExact methods to parse a string and convert it to a DateTime value. Das zweite Format verwendet eine Form, die von unterstützt die ISO 8601 standard für die Darstellung Datum und Uhrzeit im Zeichenfolgenformat.The second format uses a form supported by the ISO 8601 standard for a representing date and time in string format. Diese standard-Darstellung wird häufig verwendet, um Datumsinformationen in Webdienste übertragen.This standard representation is often used to transfer date information in web services.

Dim dateString As String = "5/1/2008 8:30:52 AM"
Dim date1 As Date = Date.Parse(dateString,
                       System.Globalization.CultureInfo.InvariantCulture)
Dim iso8601String As String = "20080501T08:30:52Z"
Dim dateISO8602 As Date = DateTime.ParseExact(iso8601String, "yyyyMMddTHH:mm:ssZ",
                              System.Globalization.CultureInfo.InvariantCulture)
Console.WriteLine(dateISO8602)

string dateString = "5/1/2008 8:30:52 AM";
DateTime date1 = DateTime.Parse(dateString,
                          System.Globalization.CultureInfo.InvariantCulture);
string iso8601String = "20080501T08:30:52Z";
DateTime dateISO8602 = DateTime.ParseExact(iso8601String, "yyyyMMddTHH:mm:ssZ",
                                System.Globalization.CultureInfo.InvariantCulture);

Die TryParse und TryParseExact Methoden angeben, ob eine Zeichenfolge eine gültige Darstellung des ist eine DateTime Wert und, wenn es sich handelt, führt die Konvertierung.The TryParse and TryParseExact methods indicate whether a string is a valid representation of a DateTime value and, if it is, performs the conversion.

Sprachspezifische Syntax für Visual BasicLanguage-specific syntax for Visual Basic

Die folgende Visual Basic-Anweisung initialisiert eine neue DateTime Wert.The following Visual Basic statement initializes a new DateTime value.

Dim date1 As Date = #5/1/2008 8:30:52AM#

DateTime-Werte und deren ZeichenfolgenrepräsentationenDateTime values and their string representations

Intern werden alle DateTime Werte dargestellt sind, als die Anzahl der Ticks (die Anzahl der 100-Nanosekunden-Intervalle), die seit 12:00:00 Mitternacht, 1. Januar 0001 verstrichen sind.Internally, all DateTime values are represented as the number of ticks (the number of 100-nanosecond intervals) that have elapsed since 12:00:00 midnight, January 1, 0001. Die tatsächliche DateTime Wert ist unabhängig von der Methode, die in der dieser Wert wird angezeigt, wenn Sie angezeigt.The actual DateTime value is independent of the way in which that value appears when displayed. Die Darstellung einer DateTime Wert ist das Ergebnis eines Formatierungsvorgangs ab, der einen Wert in seine Zeichenfolgendarstellung konvertiert.The appearance of a DateTime value is the result of a formatting operation that converts a value to its string representation.

Die Darstellung von Datums-und Uhrzeitwerte ist abhängig von der Kultur, internationale Standards, Anforderungen und Geschmackssache.The appearance of date and time values is dependent on culture, international standards, application requirements, and personal preference. Die DateTime Struktur bietet Flexibilität beim Formatieren der Datums- / über Überladungen des ToString.The DateTime structure offers flexibility in formatting date and time values through overloads of ToString. Der Standardwert DateTime.ToString() Methode gibt die Zeichenfolgendarstellung einer Datums- / -Wert, der aktuellen Kultur kurzes Datum und lange Uhrzeitformat zurück.The default DateTime.ToString() method returns the string representation of a date and time value using the current culture's short date and long time pattern. Im folgenden Beispiel wird der Standardwert DateTime.ToString() Methode.The following example uses the default DateTime.ToString() method. Es zeigt das Datum und Uhrzeit im kurzen Datums- und des langen Uhrzeitformat für die aktuelle Kultur verwenden.It displays the date and time using the short date and long time pattern for the current culture. Die Kultur En-US ist die aktuelle Kultur auf dem Computer, auf dem das Beispiel ausgeführt wurde.The en-US culture is the current culture on the computer on which the example was run.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString());
// For en-US culture, displays 3/1/2008 7:00:00 AM
Dim date1 As Date = #3/1/2008 7:00AM#
Console.WriteLine(date1.ToString())
' For en-US culture, displays 3/1/2008 7:00:00 AM

Sie müssen Webszenarien zu unterstützen, in dem der Server in einer anderen Kultur vom Client möglicherweise, Datumsangaben in einer bestimmten Kultur zu formatieren.You may need to format dates in a specific culture to support web scenarios where the server may be in a different culture from the client. Sie geben die Kultur mit der DateTime.ToString(IFormatProvider) Methode, um das kurze Datum und lange Uhrzeit-Darstellungen in einer bestimmten Kultur zu erstellen.You specify the culture using the DateTime.ToString(IFormatProvider) method to create the short date and long time representation in a specific culture. Im folgenden Beispiel wird die DateTime.ToString(IFormatProvider) Methode zeigt das Datum und Uhrzeit verwenden das kurze Datum und langen Uhrzeitformat für die Kultur "fr-FR".The following example uses the DateTime.ToString(IFormatProvider) method to display the date and time using the short date and long time pattern for the fr-FR culture.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 01/03/2008 07:00:00
Dim date1 As Date = #3/1/2008 7:00AM#
Console.WriteLine(date1.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 01/03/2008 07:00:00

Andere Anwendungen erfordern möglicherweise andere zeichenfolgendarstellungen eines Datums.Other applications may require different string representations of a date. Die DateTime.ToString(String) Methode gibt eine Zeichenfolgendarstellung von einem standardmäßigen oder benutzerdefinierten Formatbezeichner, der Verwendung der Formatierungskonventionen der aktuellen Kultur definiert.The DateTime.ToString(String) method returns the string representation defined by a standard or custom format specifier using the formatting conventions of the current culture. Im folgenden Beispiel wird die DateTime.ToString(String) Kultur Methode, um das vollständige Datums- und Uhrzeitmuster, die für das de-de anzuzeigen, die die aktuelle Kultur auf dem Computer, auf denen das Beispiel ausgeführt wurde.The following example uses the DateTime.ToString(String) method to display the full date and time pattern for the en-US culture, the current culture on the computer on which the example was run.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F"));
// Displays Saturday, March 01, 2008 7:00:00 AM
Dim date1 As Date = #3/1/2008 7:00AM#
Console.WriteLine(date1.ToString("F"))
' Displays Saturday, March 01, 2008 7:00:00 AM

Schließlich können Sie angeben, sowohl für die Kultur als auch für die Verwendung des Formats der DateTime.ToString(String, IFormatProvider) Methode.Finally, you can specify both the culture and the format using the DateTime.ToString(String, IFormatProvider) method. Im folgenden Beispiel wird die DateTime.ToString(String, IFormatProvider) Methode, um das vollständige Datums- und Uhrzeitmuster, die für die Kultur "fr-FR" anzuzeigen.The following example uses the DateTime.ToString(String, IFormatProvider) method to display the full date and time pattern for the fr-FR culture.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString("F", new System.Globalization.CultureInfo("fr-FR")));
// Displays samedi 1 mars 2008 07:00:00
Dim date1 As Date = #3/1/2008 7:00AM#
Console.WriteLine(date1.ToString("F", New System.Globalization.CultureInfo("fr-FR")))
' Displays samedi 1 mars 2008 07:00:00

Die DateTime.ToString(String) Überladung kann auch mit einer benutzerdefinierten Formatzeichenfolge verwendet werden, um andere Formate angeben.The DateTime.ToString(String) overload can also be used with a custom format string to specify other formats. Das folgende Beispiel zeigt, wie Sie Formatieren einer Zeichenfolge mit der ISO 8601 Standardformat, die häufig für Webdienste verwendet.The following example shows how to format a string using the ISO 8601 standard format often used for web services. Iso 8601-Formats muss eine entsprechende Standardformat-Zeichenfolge nicht.The Iso 8601 format does not have a corresponding standard format string.

[!code-csharp-interactiveSystem.DateTime.Formatting#5][!code-csharp-interactiveSystem.DateTime.Formatting#5]

Dim date1 As Date = #3/1/2008 7:00AM#
Console.WriteLine(date1.ToString("yyyyMMddTHH:mm:ssZ"))
' Displays 20080301T07:00:00Z

Weitere Informationen zur Formatierung DateTime Werte finden Sie unter Standardformatzeichenfolgen für Datum und Uhrzeit-Formatzeichenfolgen und Custom Date and Time Format Strings.For more information about formatting DateTime values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings.

Analysieren von DateTime-Werte von ZeichenfolgenParsing DateTime values from strings

Analysieren von konvertiert die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in einem DateTime Wert.Parsing converts the string representation of a date and time to a DateTime value. Zeichenfolgen für Datum und Uhrzeit werden in der Regel zwei unterschiedliche Verwendungen in Anwendungen haben:Typically, date and time strings have two different usages in applications:

  • Datum und Uhrzeit eine Vielzahl von Formen akzeptiert, und gibt die Konventionen der aktuellen Kultur oder einer bestimmten Kultur.A date and time takes a variety of forms and reflects the conventions of either the current culture or a specific culture. Beispielsweise kann eine Anwendung einen Benutzer, dessen aktuelle Kultur En-US, geben Sie einen Datumswert als "12/15/2013" oder "15. Dezember 2013".For example, an application allows a user whose current culture is en-US to input a date value as "12/15/2013" or "December 15, 2013". Sie ermöglicht dem Benutzer, dessen aktuelle Kultur "En-gb, geben Sie einen Datumswert als" 12/15/2013"oder"15. Dezember 2013.""It allows a user whose current culture is en-gb to input a date value as "15/12/2013" or "15 December 2013."

  • Datum und Uhrzeit wird in einem vordefinierten Format dargestellt.A date and time is represented in a predefined format. Eine Anwendung serialisiert z. B. ein Datum als "20130103" unabhängig von der Kultur, die auf der die app ausgeführt wird.For example, an application serializes a date as "20130103" independently of the culture on which the app is running. Eine Anwendung möglicherweise Datumsangaben im kurzen Datumsformat der aktuellen Kultur eingegeben werden.An application may require dates be input in the current culture's short date format.

Sie verwenden die Parse oder TryParse Methode zum Konvertieren einer Zeichenfolge eines der allgemeinen Datums- und Zeitformate, die ein, die eine Kultur eine DateTime Wert.You use the Parse or TryParse method to convert a string from one of the common date and time formats used by a culture to a DateTime value. Das folgende Beispiel zeigt, wie Sie verwenden können TryParse Datumszeichenfolgen in verschiedenen Formaten von kulturspezifischen zum Konvertieren einer DateTime Wert.The following example shows how you can use TryParse to convert date strings in different culture-specific formats to a DateTime value. Es wird die aktuelle Kultur auf Englisch (Großbritannien) und ruft die GetDateTimeFormats() Methode, um ein Array von Zeichenfolgen für Datum und Uhrzeit zu generieren.It changes the current culture to English (Great Britain) and calls the GetDateTimeFormats() method to generate an array of date and time strings. Anschließend jedes Element im Array und übergibt die TryParse Methode.It then passes each element in the array to the TryParse method. Die Ausgabe des Beispiels zeigt, dass die Methode erfolgreich alle kulturabhängige Datums- und Uhrzeitzeichenfolgen konvertieren konnte.The output from the example shows the parsing method was able to successfully convert each of the culture-specific date and time strings.

System.Threading.Thread.CurrentThread.CurrentCulture = 
    System.Globalization.CultureInfo.CreateSpecificCulture("en-GB");

DateTime date1 = new DateTime(2013, 6, 1, 12, 32, 30);
List<string> badFormats = new List<String>();

Console.WriteLine($"{"Date String",-37} {"Date",-19}\n");
foreach (var dateString in date1.GetDateTimeFormats())
{
    DateTime parsedDate;
    if (DateTime.TryParse(dateString, out parsedDate))
        Console.WriteLine($"{dateString,-37} {DateTime.Parse(dateString),-19}");
    else
        badFormats.Add(dateString);
}

// Display strings that could not be parsed.
if (badFormats.Count > 0)
{
    Console.WriteLine("\nStrings that could not be parsed: ");
    foreach (var badFormat in badFormats)
        Console.WriteLine($"   {badFormat}");
}
// Press "Run" to see the output
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB")

Dim date1 As DateTime = New DateTime(2013, 6, 1, 12, 32, 30)
Dim badFormats As New List(Of String)

Console.WriteLine($"{"Date String",-37} {"Date",-19}")
Console.WriteLine()
For Each dateString As String In date1.GetDateTimeFormats()
    Dim parsedDate As DateTime
    If DateTime.TryParse(dateString, parsedDate) Then
        Console.WriteLine($"{dateString,-37} {DateTime.Parse(dateString),-19:g}")
    Else
        badFormats.Add(dateString)
    End If
Next

' Display strings that could not be parsed.
If badFormats.Count > 0 Then
    Console.WriteLine()
    Console.WriteLine("Strings that could not be parsed: ")
    For Each badFormat In badFormats
        Console.WriteLine($"   {badFormat}")
    Next
End If
' The example displays the following output:
'       Date String                           Date               
'       
'       01/06/2013                            01/06/2013 00:00:00
'       01/06/13                              01/06/2013 00:00:00
'       1/6/13                                01/06/2013 00:00:00
'       1.6.13                                01/06/2013 00:00:00
'       2013-06-01                            01/06/2013 00:00:00
'       01 June 2013                          01/06/2013 00:00:00
'       1 June 2013                           01/06/2013 00:00:00
'       01 June 2013 12:32                    01/06/2013 12:32:00
'       01 June 2013 12:32                    01/06/2013 12:32:00
'       01 June 2013 12:32 PM                 01/06/2013 12:32:00
'       01 June 2013 12:32 PM                 01/06/2013 12:32:00
'       1 June 2013 12:32                     01/06/2013 12:32:00
'       1 June 2013 12:32                     01/06/2013 12:32:00
'       1 June 2013 12:32 PM                  01/06/2013 12:32:00
'       1 June 2013 12:32 PM                  01/06/2013 12:32:00
'       01 June 2013 12:32:30                 01/06/2013 12:32:30
'       01 June 2013 12:32:30                 01/06/2013 12:32:30
'       01 June 2013 12:32:30 PM              01/06/2013 12:32:30
'       01 June 2013 12:32:30 PM              01/06/2013 12:32:30
'       1 June 2013 12:32:30                  01/06/2013 12:32:30
'       1 June 2013 12:32:30                  01/06/2013 12:32:30
'       1 June 2013 12:32:30 PM               01/06/2013 12:32:30
'       1 June 2013 12:32:30 PM               01/06/2013 12:32:30
'       01/06/2013 12:32                      01/06/2013 12:32:00
'       01/06/2013 12:32                      01/06/2013 12:32:00
'       01/06/2013 12:32 PM                   01/06/2013 12:32:00
'       01/06/2013 12:32 PM                   01/06/2013 12:32:00
'       01/06/13 12:32                        01/06/2013 12:32:00
'       01/06/13 12:32                        01/06/2013 12:32:00
'       01/06/13 12:32 PM                     01/06/2013 12:32:00
'       01/06/13 12:32 PM                     01/06/2013 12:32:00
'       1/6/13 12:32                          01/06/2013 12:32:00
'       1/6/13 12:32                          01/06/2013 12:32:00
'       1/6/13 12:32 PM                       01/06/2013 12:32:00
'       1/6/13 12:32 PM                       01/06/2013 12:32:00
'       1.6.13 12:32                          01/06/2013 12:32:00
'       1.6.13 12:32                          01/06/2013 12:32:00
'       1.6.13 12:32 PM                       01/06/2013 12:32:00
'       1.6.13 12:32 PM                       01/06/2013 12:32:00
'       2013-06-01 12:32                      01/06/2013 12:32:00
'       2013-06-01 12:32                      01/06/2013 12:32:00
'       2013-06-01 12:32 PM                   01/06/2013 12:32:00
'       2013-06-01 12:32 PM                   01/06/2013 12:32:00
'       01/06/2013 12:32:30                   01/06/2013 12:32:30
'       01/06/2013 12:32:30                   01/06/2013 12:32:30
'       01/06/2013 12:32:30 PM                01/06/2013 12:32:30
'       01/06/2013 12:32:30 PM                01/06/2013 12:32:30
'       01/06/13 12:32:30                     01/06/2013 12:32:30
'       01/06/13 12:32:30                     01/06/2013 12:32:30
'       01/06/13 12:32:30 PM                  01/06/2013 12:32:30
'       01/06/13 12:32:30 PM                  01/06/2013 12:32:30
'       1/6/13 12:32:30                       01/06/2013 12:32:30
'       1/6/13 12:32:30                       01/06/2013 12:32:30
'       1/6/13 12:32:30 PM                    01/06/2013 12:32:30
'       1/6/13 12:32:30 PM                    01/06/2013 12:32:30
'       1.6.13 12:32:30                       01/06/2013 12:32:30
'       1.6.13 12:32:30                       01/06/2013 12:32:30
'       1.6.13 12:32:30 PM                    01/06/2013 12:32:30
'       1.6.13 12:32:30 PM                    01/06/2013 12:32:30
'       2013-06-01 12:32:30                   01/06/2013 12:32:30
'       2013-06-01 12:32:30                   01/06/2013 12:32:30
'       2013-06-01 12:32:30 PM                01/06/2013 12:32:30
'       2013-06-01 12:32:30 PM                01/06/2013 12:32:30
'       01 June                               01/06/2013 00:00:00
'       01 June                               01/06/2013 00:00:00
'       2013-06-01T12:32:30.0000000           01/06/2013 12:32:30
'       2013-06-01T12:32:30.0000000           01/06/2013 12:32:30
'       Sat, 01 Jun 2013 12:32:30 GMT         01/06/2013 05:32:30
'       Sat, 01 Jun 2013 12:32:30 GMT         01/06/2013 05:32:30
'       2013-06-01T12:32:30                   01/06/2013 12:32:30
'       12:32                                 22/04/2013 12:32:00
'       12:32                                 22/04/2013 12:32:00
'       12:32 PM                              22/04/2013 12:32:00
'       12:32 PM                              22/04/2013 12:32:00
'       12:32:30                              22/04/2013 12:32:30
'       12:32:30                              22/04/2013 12:32:30
'       12:32:30 PM                           22/04/2013 12:32:30
'       12:32:30 PM                           22/04/2013 12:32:30
'       2013-06-01 12:32:30Z                  01/06/2013 05:32:30
'       01 June 2013 19:32:30                 01/06/2013 19:32:30
'       01 June 2013 19:32:30                 01/06/2013 19:32:30
'       01 June 2013 07:32:30 PM              01/06/2013 19:32:30
'       01 June 2013 7:32:30 PM               01/06/2013 19:32:30
'       1 June 2013 19:32:30                  01/06/2013 19:32:30
'       1 June 2013 19:32:30                  01/06/2013 19:32:30
'       1 June 2013 07:32:30 PM               01/06/2013 19:32:30
'       1 June 2013 7:32:30 PM                01/06/2013 19:32:30
'       June 2013                             01/06/2013 00:00:00
'       June 2013                             01/06/2013 00:00:00

Sie verwenden die ParseExact und TryParseExact Methoden zum Konvertieren einer Zeichenfolge, die ein bestimmtes Format oder die Formate, übereinstimmen muss eine DateTime Wert.You use the ParseExact and TryParseExact methods to convert a string that must match a particular format or formats to a DateTime value. Geben Sie einen oder mehrere Datum und Uhrzeit-Formatzeichenfolgen, als Parameter an die Analysemethode.You specify one or more date and time format strings as a parameter to the parsing method. Im folgenden Beispiel wird die TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) Methode, um Zeichenfolgen zu konvertieren, die entweder in einem Format "JJJJMMTT" oder in ein Format "HHmmss", um sein müssen DateTime Werte.The following example uses the TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method to convert strings that must be either in a "yyyyMMdd" format or a "HHmmss" format to DateTime values.

string[] formats = { "yyyyMMdd", "HHmmss" };
string[] dateStrings = { "20130816", "20131608", "  20130816   ",
                   "115216", "521116", "  115216  " };
DateTime parsedDate;

foreach (var dateString in dateStrings)
{
    if (DateTime.TryParseExact(dateString, formats, null,
                               System.Globalization.DateTimeStyles.AllowWhiteSpaces |
                               System.Globalization.DateTimeStyles.AdjustToUniversal,
                               out parsedDate))
        Console.WriteLine($"{dateString} --> {parsedDate:g}");
    else
        Console.WriteLine($"Cannot convert {dateString}");
}
// The example displays the following output:
//       20130816 --> 8/16/2013 12:00 AM
//       Cannot convert 20131608
//         20130816    --> 8/16/2013 12:00 AM
//       115216 --> 4/22/2013 11:52 AM
//       Cannot convert 521116
//         115216   --> 4/22/2013 11:52 AM
Dim formats() As String = {"yyyyMMdd", "HHmmss"}
Dim dateStrings() As String = {"20130816", "20131608",
                              "  20130816   ", "115216",
                              "521116", "  115216  "}
Dim parsedDate As DateTime

For Each dateString As String In dateStrings
    If DateTime.TryParseExact(dateString, formats, Nothing,
                           DateTimeStyles.AllowWhiteSpaces Or
                           DateTimeStyles.AdjustToUniversal,
                           parsedDate) Then
        Console.WriteLine($"{dateString} --> {parsedDate:g}")
    Else
        Console.WriteLine($"Cannot convert {dateString}")
    End If
Next
' The example displays the following output:
'       20130816 --> 8/16/2013 12:00 AM
'       Cannot convert 20131608
'         20130816    --> 8/16/2013 12:00 AM
'       115216 --> 4/22/2013 11:52 AM
'       Cannot convert 521116
'         115216   --> 4/22/2013 11:52 AM

Ein gängiges Szenario für ParseExact besteht darin, eine Zeichenfolgendarstellung von einem Webdienst in der Regel in konvertieren ISO 8601 Standardformat.One common use for ParseExact is to convert a string representation from a web service, usually in ISO 8601 standard format. Der folgende Code zeigt die richtige Format, die zu verwendende Zeichenfolge an:The following code shows the correct format string to use:

string iso8601String = "20080501T08:30:52Z";
DateTime dateISO8602 = DateTime.ParseExact(iso8601String, "yyyyMMddTHH:mm:ssZ", 
    System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine($"{iso8601String} --> {dateISO8602:g}");
Dim iso8601String As String = "20080501T08:30:52Z"
Dim dateISO8602 As DateTime = DateTime.ParseExact(iso8601String, "yyyyMMddTHH:mm:ssZ", CultureInfo.InvariantCulture)
Console.WriteLine($"{iso8601String} --> {dateISO8602:g}")

Wenn eine Zeichenfolge nicht analysiert werden kann, die Parse und ParseExact Methoden lösen eine Ausnahme.If a string cannot be parsed, the Parse and ParseExact methods throw an exception. Die TryParse und TryParseExact Methoden zurückgeben einer Boolean Wert, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.The TryParse and TryParseExact methods return a Boolean value that indicates whether the conversion succeeded or failed. Verwenden Sie die TryParse oder TryParseExact Methoden in Szenarien, in denen Leistung wichtig ist.You should use the TryParse or TryParseExact methods in scenarios where performance is important. Der Analysevorgang für Zeichenfolgen für Datum und Uhrzeit tendenziell eine hohe Fehlerrate und Behandeln von Ausnahmen ist teuer.The parsing operation for date and time strings tends to have a high failure rate, and exception handling is expensive. Diese Methoden verwenden, wenn die Zeichenfolgen, die vom Benutzer eingegeben werden, oder von einer unbekannten Quelle stammen.Use these methods if strings are input by users or coming from an unknown source.

Weitere Informationen zu Datums-und Uhrzeitwerte analysieren, finden Sie unter Analysieren von Zeichenfolgen für Datum und Uhrzeit.For more information about parsing date and time values, see Parsing Date and Time Strings.

DateTime-WerteDateTime values

Beschreibungen der Time-Werten der DateTime Typ werden häufig mithilfe von des Standards der koordinierten Weltzeit (Coordinated Universal Time, UTC) ausgedrückt.Descriptions of time values in the DateTime type are often expressed using the Coordinated Universal Time (UTC) standard. Koordinierte Weltzeit ist der international anerkannten Name für die Greenwich Mean Time (GMT).Coordinated Universal Time is the internationally recognized name for Greenwich Mean Time (GMT). Koordinierte Weltzeit ist die Zeit gemessen Längengrad 0, den Ausgangspunkt der UTC.Coordinated Universal Time is the time as measured at zero degrees longitude, the UTC origin point. Sommerzeit gilt nicht in UTC.Daylight saving time is not applicable to UTC.

Lokale Zeit ist relativ zu einer bestimmten Zeitzone.Local time is relative to a particular time zone. Eine Zeitzone ist ein Zeitzonenoffset zugeordnet.A time zone is associated with a time zone offset. Ein Zeitzonenoffset ist die Verschiebung der Zeitzone, gemessen in Stunden nach UTC-Ursprungspunkt.A time zone offset is the displacement of the time zone measured in hours from the UTC origin point. Darüber hinaus ist Ortszeit optional Sommerzeit betroffen hinzufügt oder eine Uhrzeit-Intervall-Anpassung subtrahiert.In addition, local time is optionally affected by daylight saving time, which adds or subtracts a time interval adjustment. Lokale Zeit wird berechnet, durch das Hinzufügen des Zeitzonenoffsets zu UTC und der Sommerzeit bei Bedarf anpassen.Local time is calculated by adding the time zone offset to UTC and adjusting for daylight saving time if necessary. Der Zeitzonenoffset zur UTC-Ursprungspunkt ist 0 (null).The time zone offset at the UTC origin point is zero.

UTC-Zeit eignet sich für Berechnungen, Vergleiche, das Speichern von Datums- und Uhrzeitangaben in Dateien.UTC time is suitable for calculations, comparisons, and storing dates and time in files. Ortszeit eignet sich für die Anzeige in Benutzeroberflächen von desktopanwendungen.Local time is appropriate for display in user interfaces of desktop applications. Zeitzonenfähigen Anwendungen (z. B. viele Webanwendungen) müssen auch mit einer Reihe von anderen Zeitzonen zu arbeiten.Time zone-aware applications (such as many Web applications) also need to work with a number of other time zones.

Wenn die Kind Eigenschaft eine DateTime Objekt DateTimeKind.Unspecified, ist nicht angegeben, ob die dargestellte Zeit die Ortszeit, UTC-Zeit oder eine Uhrzeit in einer anderen Zeitzone ist.If the Kind property of a DateTime object is DateTimeKind.Unspecified, it is unspecified whether the time represented is local time, UTC time, or a time in some other time zone.

"DateTime"-LösungDateTime resolution

Hinweis

Als Alternative zum Durchführen von Datums- und uhrzeitarithmetik für DateTime -Werten zum Messen der verstrichenen Zeit, können Sie die Stopwatch Klasse.As an alternative to performing date and time arithmetic on DateTime values to measure elapsed time, you can use the Stopwatch class.

Die Ticks Eigenschaft ausdrückt, Datum und Uhrzeit-Werte in Einheiten von ein zehnmillionstel einer Sekunde.The Ticks property expresses date and time values in units of one ten-millionth of a second. Die Millisecond Eigenschaft gibt die Tausendstelsekunden in einem Datums- und Uhrzeitangabe zurück.The Millisecond property returns the thousandths of a second in a date and time value. Verwenden wiederholte Aufrufe von der DateTime.Now Eigenschaft zum Messen der verstrichenen Zeit ist abhängig von der Systemuhr.Using repeated calls to the DateTime.Now property to measure elapsed time is dependent on the system clock. Die Systemuhr auf Systemen mit Windows 7 und Windows 8 verfügt über eine Auflösung von etwa 15 Millisekunden.The system clock on Windows 7 and Windows 8 systems has a resolution of approximately 15 milliseconds. Diese Lösung wirkt sich auf kleine Zeitintervalle weniger als 100 Millisekunden.This resolution affects small time intervals less than 100 milliseconds.

Das folgende Beispiel veranschaulicht die Abhängigkeit von der aktuellen Uhrzeitwerte für Datum und der Auflösung der Systemuhr.The following example illustrates the dependence of current date and time values on the resolution of the system clock. Im Beispiel eine äußere Schleife wird 20-Mal wiederholt, und eine innere Schleife dient, um die äußere Schleife zu verzögern.In the example, an outer loop repeats 20 times, and an inner loop serves to delay the outer loop. Wenn der Wert des Zählers äußere Schleife 10, einen Aufruf der Thread.Sleep Methode führt eine fünf-Millisekunden-Verzögerung.If the value of the outer loop counter is 10, a call to the Thread.Sleep method introduces a five-millisecond delay. Das folgende Beispiel zeigt die Anzahl der Millisekunden zurückgegeben, die von der DateTime.Now.Milliseconds eigenschaftenänderungen nur nach dem Aufruf von Thread.Sleep.The following example shows the number of milliseconds returned by the DateTime.Now.Milliseconds property changes only after the call to Thread.Sleep.

String output = "";
for (int ctr = 0; ctr <= 20; ctr++)
{
    output += String.Format($"{DateTime.Now.Millisecond}\n");
    // Introduce a delay loop.
    for (int delay = 0; delay <= 1000; delay++)
    { }

    if (ctr == 10)
    {
        output += "Thread.Sleep called...\n";
        System.Threading.Thread.Sleep(5);
    }
}
Console.WriteLine(output);
// Press "Run" to see the output
Dim output As String = ""
For ctr As Integer = 0 To 20
    output += Date.Now.Millisecond.ToString() + vbCrLf
    ' Introduce a delay loop.
    For delay As Integer = 0 To 1000
    Next

    If ctr = 10 Then
        output += "Thread.Sleep called..." + vbCrLf
        Thread.Sleep(5)
    End If
Next
Console.WriteLine(output)
' The example displays output like the following:
'       111
'       111
'       111
'       111
'       111
'       111
'       111
'       111
'       111
'       111
'       111
'       Thread.Sleep called...
'       143
'       143
'       143
'       143
'       143
'       143
'       143
'       143
'       143
'       143

"DateTime"-VorgängeDateTime operations

Eine Berechnung mit einem DateTime Struktur, wie z. B. Add oder Subtract, ändert sich nicht auf den Wert der Struktur.A calculation using a DateTime structure, such as Add or Subtract, does not modify the value of the structure. Die Berechnung gibt stattdessen eine neue DateTime Struktur, deren Wert das Ergebnis der Berechnung.Instead, the calculation returns a new DateTime structure whose value is the result of the calculation.

Konvertierungsoperationen zwischen Zeitzonen (z. B. zwischen UTC und Ortszeit oder zwischen einer Zeitzone) wird die Sommerzeit berücksichtigt, arithmetischen und Vergleichsoperationen jedoch nicht.Conversion operations between time zones (such as between UTC and local time, or between one time zone and another) take daylight saving time into account, but arithmetic and comparison operations do not.

Die DateTime Struktur selbst bietet eingeschränkte Unterstützung für die Konvertierung von einer Zeitzone in eine andere.The DateTime structure itself offers limited support for converting from one time zone to another. Können Sie die ToLocalTime -Methode zum Konvertieren von UTC in die Ortszeit ist, oder Sie können die ToUniversalTime Methode, um die von der Ortszeit in UTC zu konvertieren.You can use the ToLocalTime method to convert UTC to local time, or you can use the ToUniversalTime method to convert from local time to UTC. Ein vollständiger Satz von Methoden für die Zeitzone Konvertierung ist jedoch verfügbar, in der TimeZoneInfo Klasse.However, a full set of time zone conversion methods is available in the TimeZoneInfo class. Sie konvertieren die Zeit in einer beliebigen anderen Zeitzonen der Welt, in die Zeit in einer beliebigen anderen Zeitzone mit diesen Methoden.You convert the time in any one of the world's time zones to the time in any other time zone using these methods.

Berechnungen und Vergleiche von DateTime Objekte sind sinnvoll, nur dann, wenn die Objekte Zeiten in der gleichen Zeitzone darstellen.Calculations and comparisons of DateTime objects are meaningful only if the objects represent times in the same time zone. Können Sie eine TimeZoneInfo Objekt zur Darstellung einer DateTime Uhrzeitwerts Time zone, obwohl die beiden lose gekoppelt sind.You can use a TimeZoneInfo object to represent a DateTime value's time zone, although the two are loosely coupled. Ein DateTime Objekt verfügt nicht über eine Eigenschaft, ein Objekt zurückgibt, der diesem Datums- / Uhrzeitwerts Zeitzone darstellt.A DateTime object does not have a property that returns an object that represents that date and time value's time zone. Die Kind Eigenschaft gibt an, ob eine DateTime UTC, Ortszeit darstellt, oder ist nicht angegeben.The Kind property indicates if a DateTime represents UTC, local time, or is unspecified. In einer Zeitzonen unterstützende Anwendung, müssen Sie eine verlassen auf einen externen Mechanismus, um zu bestimmen, die Zeitzone, in dem eine DateTime Objekt erstellt wurde.In a time zone-aware application, you must rely on some external mechanism to determine the time zone in which a DateTime object was created. Können Sie eine Struktur, die beide dient als Wrapper für die DateTime Wert und die TimeZoneInfo Objekt, das darstellt der DateTime Zeitzone des Werts.You could use a structure that wraps both the DateTime value and the TimeZoneInfo object that represents the DateTime value's time zone. Weitere Informationen zur Verwendung von UTC in Berechnungen und Vergleiche mit DateTime Werte finden Sie unter durchführen Arithmetischer Operationen mit Datums- und Uhrzeitangaben.For details on using UTC in calculations and comparisons with DateTime values, see Performing Arithmetic Operations with Dates and Times.

Jede DateTime Member verwendet implizit den gregorianischen Kalender, um diesen Vorgang auszuführen.Each DateTime member implicitly uses the Gregorian calendar to perform its operation. Ausnahmen sind Methoden, die implizit einen Kalenders anzugeben.Exceptions are methods that implicitly specify a calendar. Dazu gehören die Konstruktoren, die einen Kalenders anzugeben, Methoden und mit einem Parameter von IFormatProvider, z. B. System.Globalization.DateTimeFormatInfo.These include constructors that specify a calendar, and methods with a parameter derived from IFormatProvider, such as System.Globalization.DateTimeFormatInfo.

Vorgänge von einem Mitglied der DateTime Typ berücksichtigen Einzelheiten wie z. B. Schaltjahre und die Anzahl der Tage im Monat.Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.

DateTime-Werte und KalenderDateTime values and calendars

Der .NET Framework-Klassenbibliothek enthält eine Reihe von Klassen für Kalender, die abgeleitet sind davon die Calendar Klasse.The .NET Framework Class Library includes a number of calendar classes, all of which are derived from the Calendar class. Dies sind:They are:

Jede Kultur verwendet einen Standardkalender, der definiert, die von der schreibgeschützten CultureInfo.Calendar Eigenschaft.Each culture uses a default calendar defined by its read-only CultureInfo.Calendar property. Jede Kultur kann mindestens einen Kalender definiert, die von der schreibgeschützten unterstützen CultureInfo.OptionalCalendars Eigenschaft.Each culture may support one or more calendars defined by its read-only CultureInfo.OptionalCalendars property. Momentan verwendet von einem bestimmten Kalender CultureInfo Objekt wird definiert durch seine DateTimeFormatInfo.Calendar Eigenschaft.The calendar currently used by a specific CultureInfo object is defined by its DateTimeFormatInfo.Calendar property. Es muss sich um einen der finden Sie im Kalender das CultureInfo.OptionalCalendars Array.It must be one of the calendars found in the CultureInfo.OptionalCalendars array.

Aktueller Kalender einer Kultur wird in alle Formatierungsvorgängen für die jeweilige Kultur verwendet.A culture's current calendar is used in all formatting operations for that culture. Ist beispielsweise der Standardkalender der Kultur buddhistischen des thailändischer Buddhist Era-Kalenders, der durch dargestellt wird die ThaiBuddhistCalendar Klasse.For example, the default calendar of the Thai Buddhist culture is the Thai Buddhist Era calendar, which is represented by the ThaiBuddhistCalendar class. Wenn eine CultureInfo -Objekt, das die Kultur buddhistischen darstellt, die in einem Datum und Uhrzeit-Format Vorgang verwendet wird, wird standardmäßig der thailändischer Buddhist Era-Kalender verwendet.When a CultureInfo object that represents the Thai Buddhist culture is used in a date and time formatting operation, the Thai Buddhist Era calendar is used by default. Der gregorianische Kalender verwendet wird, nur dann, wenn der Kultur DateTimeFormatInfo.Calendar -Eigenschaft geändert wird, wie im folgenden Beispiel gezeigt:The Gregorian calendar is used only if the culture's DateTimeFormatInfo.Calendar property is changed, as the following example shows:

var thTH = new System.Globalization.CultureInfo("th-TH");
var value = new DateTime(2016, 5, 28);

Console.WriteLine(value.ToString(thTH));

thTH.DateTimeFormat.Calendar = new System.Globalization.GregorianCalendar();
Console.WriteLine(value.ToString(thTH));
// Press "Run" to see the output
Dim thTH As New CultureInfo("th-TH")
Dim value As New DateTime(2016, 5, 28)

Console.WriteLine(value.ToString(thTH))

thTH.DateTimeFormat.Calendar = New GregorianCalendar()
Console.WriteLine(value.ToString(thTH))
' The example displays the following output:
'       28/5/2559 0:00:00
'       28/5/2016 0:00:00

Aktueller Kalender einer Kultur wird auch in der alle Analyseoperationen für die jeweilige Kultur, wie im folgenden Beispiel gezeigt verwendet werden.A culture's current calendar is also used in all parsing operations for that culture, as the following example shows.

var thTH = new System.Globalization.CultureInfo("th-TH");
var value = DateTime.Parse("28/05/2559", thTH);
Console.WriteLine(value.ToString(thTH));

thTH.DateTimeFormat.Calendar = new System.Globalization.GregorianCalendar();
Console.WriteLine(value.ToString(thTH));
// Press "Run" to see the output
Private Sub ThaiBuddhistEraParse()
    Dim thTH As New CultureInfo("th-TH")
    Dim value As DateTime = DateTime.Parse("28/5/2559", thTH)
    Console.WriteLine(value.ToString(thTH))

    thTH.DateTimeFormat.Calendar = New GregorianCalendar()
    Console.WriteLine(value.ToString(thTH))
    ' The example displays the following output:
    '       28/5/2559 0:00:00
    '       28/5/2016 0:00:00
End Sub

Instanziieren Sie ein DateTime Wert mithilfe der Datums- / Elemente (Anzahl der Jahr, Monat und Tag) eines bestimmten Kalenders durch den Aufruf einer DateTime-Konstruktor , enthält eine calendar Parameter und die Übergabe einer Calendar-Objekt, das diesen Kalender darstellt.You instantiate a DateTime value using the date and time elements (number of the year, month, and day) of a specific calendar by calling a DateTime constructor that includes a calendar parameter and passing it a Calendar object that represents that calendar. Im folgenden Beispiel wird das Datum und Uhrzeit Elemente aus der ThaiBuddhistCalendar Kalender.The following example uses the date and time elements from the ThaiBuddhistCalendar calendar.

var thTH = new System.Globalization.CultureInfo("th-TH");
var dat = new DateTime(2559, 5, 28, thTH.DateTimeFormat.Calendar);
Console.WriteLine($"Thai Buddhist era date: {dat.ToString("d", thTH)}");
Console.WriteLine($"Gregorian date:   {dat:d}");
// Press "Run" to see the output
Dim thTH As New CultureInfo("th-TH")
Dim dat As New DateTime(2559, 5, 28, thTH.DateTimeFormat.Calendar)
Console.WriteLine("Thai Buddhist Era date: {0}", dat.ToString("d", thTH))
Console.WriteLine("Gregorian date:   {0:d}", dat)
' The example displays the following output:
'       Thai Buddhist Era Date:  28/5/2559
'       Gregorian Date:     28/05/2016

DateTime Konstruktoren, die keine enthalten eine calendar Parameter wird davon ausgegangen, dass die Elemente von Datum und Uhrzeit als Einheiten im gregorianischen Kalender ausgedrückt werden.DateTime constructors that do not include a calendar parameter assume that the date and time elements are expressed as units in the Gregorian calendar.

Alle anderen DateTime Eigenschaften und Methoden verwenden den gregorianischen Kalender.All other DateTime properties and methods use the Gregorian calendar. Z. B. die DateTime.Year Eigenschaft gibt das Jahr im gregorianischen Kalender, und die DateTime.IsLeapYear(Int32) Methode setzt voraus, dass die year -Parameter ist ein Jahr im gregorianischen Kalender.For example, the DateTime.Year property returns the year in the Gregorian calendar, and the DateTime.IsLeapYear(Int32) method assumes that the year parameter is a year in the Gregorian calendar. Jede DateTime Member, der den gregorianischen Kalender wird verwendet, verfügt über einen entsprechenden Member der Calendar Klasse, die einen bestimmten Kalender verwendet.Each DateTime member that uses the Gregorian calendar has a corresponding member of the Calendar class that uses a specific calendar. Z. B. die Calendar.GetYear Methode gibt das Jahr in einem bestimmten Kalender, und die Calendar.IsLeapYear -Methode interpretiert die year Parameter als Jahreszahl in einem bestimmten Kalender.For example, the Calendar.GetYear method returns the year in a specific calendar, and the Calendar.IsLeapYear method interprets the year parameter as a year number in a specific calendar. Im folgenden Beispiel wird sowohl die DateTime und den entsprechenden Membern von der ThaiBuddhistCalendar Klasse.The following example uses both the DateTime and the corresponding members of the ThaiBuddhistCalendar class.

var thTH = new System.Globalization.CultureInfo("th-TH");
var cal = thTH.DateTimeFormat.Calendar;
var dat = new DateTime(2559, 5, 28, cal);
Console.WriteLine("Using the Thai Buddhist Era calendar:");
Console.WriteLine($"Date: {dat.ToString("d", thTH)}");
Console.WriteLine($"Year: {cal.GetYear(dat)}");
Console.WriteLine($"Leap year: {cal.IsLeapYear(cal.GetYear(dat))}\n");

Console.WriteLine("Using the Gregorian calendar:");
Console.WriteLine($"Date: {dat:d}");
Console.WriteLine($"Year: {dat.Year}");
Console.WriteLine($"Leap year: {DateTime.IsLeapYear(dat.Year)}");
// Press "Run" to see the output
Dim thTH As New CultureInfo("th-TH")
Dim cal As Calendar = thTH.DateTimeFormat.Calendar
Dim dat As New DateTime(2559, 5, 28, cal)
Console.WriteLine("Using the Thai Buddhist Era calendar:")
Console.WriteLine("Date: {0}", dat.ToString("d", thTH))
Console.WriteLine("Year: {0}", cal.GetYear(dat))
Console.WriteLine("Leap year: {0}", cal.IsLeapYear(cal.GetYear(dat)))
Console.WriteLine()

Console.WriteLine("Using the Gregorian calendar:")
Console.WriteLine("Date: {0:d}", dat)
Console.WriteLine("Year: {0}", dat.Year)
Console.WriteLine("Leap year: {0}", DateTime.IsLeapYear(dat.Year))
' The example displays the following output:
'       Using the Thai Buddhist Era calendar
'       Date :   28/5/2559
'       Year: 2559
'       Leap year :   True
'
'       Using the Gregorian calendar
'       Date :   28/05/2016
'       Year: 2016
'       Leap year :   True

Die DateTime Struktur enthält eine DayOfWeek Eigenschaft, die den Tag der Woche im gregorianischen Kalender zurückgibt.The DateTime structure includes a DayOfWeek property that returns the day of the week in the Gregorian calendar. Er umfasst kein Element, das Sie die Nummer der Woche des Jahres abrufen können.It does not include a member that allows you to retrieve the week number of the year. Um die Woche des Jahres zu abzurufen, rufen Sie die einzelnen Kalender Calendar.GetWeekOfYear Methode.To retrieve the week of the year, call the individual calendar's Calendar.GetWeekOfYear method. Dies wird im folgenden Beispiel veranschaulicht.The following example provides an illustration.

var thTH = new System.Globalization.CultureInfo("th-TH");
var thCalendar = thTH.DateTimeFormat.Calendar;
var dat = new DateTime(1395, 8, 18, thCalendar);
Console.WriteLine("Using the Thai Buddhist Era calendar:");
Console.WriteLine($"Date: {dat.ToString("d", thTH)}");
Console.WriteLine($"Day of Week: {thCalendar.GetDayOfWeek(dat)}");
Console.WriteLine($"Week of year: {thCalendar.GetWeekOfYear(dat, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Sunday)}\n");

var greg = new System.Globalization.GregorianCalendar();
Console.WriteLine("Using the Gregorian calendar:");
Console.WriteLine($"Date: {dat:d}");
Console.WriteLine($"Day of Week: {dat.DayOfWeek}");
Console.WriteLine($"Week of year: {greg.GetWeekOfYear(dat, System.Globalization.CalendarWeekRule.FirstDay,DayOfWeek.Sunday)}");
// Press "Run" to see the output
Dim thTH As New CultureInfo("th-TH")
Dim thCalendar As Calendar = thTH.DateTimeFormat.Calendar
Dim dat As New DateTime(1395, 8, 18, thCalendar)
Console.WriteLine("Using the Thai Buddhist Era calendar:")
Console.WriteLine("Date: {0}", dat.ToString("d", thTH))
Console.WriteLine("Day of Week: {0}", thCalendar.GetDayOfWeek(dat))
Console.WriteLine("Week of year: {0}",
                thCalendar.GetWeekOfYear(dat, CalendarWeekRule.FirstDay,
                                       DayOfWeek.Sunday))
Console.WriteLine()

Dim greg As Calendar = New GregorianCalendar()
Console.WriteLine("Using the Gregorian calendar:")
Console.WriteLine("Date: {0:d}", dat)
Console.WriteLine("Day of Week: {0}", dat.DayOfWeek)
Console.WriteLine("Week of year: {0}",
                 greg.GetWeekOfYear(dat, CalendarWeekRule.FirstDay,
                                    DayOfWeek.Sunday))
' The example displays the following output:
'       Using the Thai Buddhist Era calendar
'       Date :  18/8/1395
'       Day of Week: Sunday
'       Week of year: 34
'       
'       Using the Gregorian calendar
'       Date :  18/08/0852
'       Day of Week: Sunday
'       Week of year: 34

Weitere Informationen zu Datumsangaben und Kalender, finden Sie unter arbeiten mit Kalendern.For more information on dates and calendars, see Working with Calendars.

Beibehalten von DateTime-WertePersisting DateTime values

Sie können beibehalten DateTime Werte in vier Möglichkeiten:You can persist DateTime values in four ways:

Sie müssen sicherstellen, dass die Routine, die wiederherstellt der DateTime Werte keine Daten verloren gehen oder löst eine Ausnahme aus, unabhängig davon, welche Methode Sie wählen.You must ensure that the routine that restores the DateTime values doesn't lose data or throw an exception regardless of which technique you choose. DateTime Werte sollten Round-Trip.DateTime values should round-trip. D. h. sollte den ursprünglichen Wert und der wiederhergestellte Wert sein identisch.That is, the original value and the restored value should be the same. Und wenn die ursprüngliche DateTime Wert stellt einen einzelnen Zeitinstanz dar, sie sollten ermitteln, den gleichen Moment Zeit, wenn sie wiederhergestellt wird.And if the original DateTime value represents a single instant of time, it should identify the same moment of time when it's restored.

Beibehalten von Werten als ZeichenfolgenPersisting values as strings

Erfolgreich wiederherstellen DateTime Werte, die als Zeichenfolgen gespeichert werden, gelten folgende Regeln:To successfully restore DateTime values that are persisted as strings, follow these rules:

  • Annahmen Sie die gleichen über die kulturabhängige Formatierung, wenn Sie die Zeichenfolge als Sie es der Beibehaltung wiederherstellen.Make the same assumptions about culture-specific formatting when you restore the string as when you persisted it. Um sicherzustellen, dass eine Zeichenfolge in einem System wiederhergestellt werden kann, mit der aktuellen Kultur unterscheidet sich von der Kultur des Systems wurde auf Speichern, rufen Sie die ToString -Überladung verwenden, um die Zeichenfolge mithilfe der Konventionen der invarianten Kultur zu speichern.To ensure that a string can be restored on a system whose current culture is different from the culture of the system it was saved on, call the ToString overload to save the string by using the conventions of the invariant culture. Rufen Sie die Parse(String, IFormatProvider, DateTimeStyles) oder TryParse(String, IFormatProvider, DateTimeStyles, DateTime) -Überladung verwenden, um die Zeichenfolge mithilfe der Konventionen der invarianten Kultur wiederherstellen.Call the Parse(String, IFormatProvider, DateTimeStyles) or TryParse(String, IFormatProvider, DateTimeStyles, DateTime) overload to restore the string by using the conventions of the invariant culture. Verwenden Sie niemals die ToString(), Parse(String), oder TryParse(String, DateTime) Überladungen, die die Konventionen der aktuellen Threadkultur verwendet.Never use the ToString(), Parse(String), or TryParse(String, DateTime) overloads, which use the conventions of the current thread culture.

  • Wenn das Datum über einen einzigen Zeitpunkt darstellt, stellen Sie sicher, dass sie den gleichen Zeitpunkt darstellt, wenn sie auch auf einer anderen Zeitzone wiederhergestellt wurde.If the date represents a single moment of time, ensure that it represents the same moment in time when it's restored, even on a different time zone. Konvertieren der DateTime Wert in die koordinierte Weltzeit (UTC) vor dem Speichern.Convert the DateTime value to Coordinated Universal Time (UTC) before saving it. Sie können auch den Wert zusammen mit Zeitzoneninformationen zu serialisieren.You can also serialize the value along with time zone information. Weitere Informationen zu diesem Verfahren finden Sie unter Serialisieren von "DateTime" und die entsprechende Zeitzone Daten.For more information about this approach, see Serializing DateTime and time zone data.

Der häufigste Fehler, die vorgenommen werden, wenn das Beibehalten von DateTime Werten als Zeichenfolgen wird die Formatierungskonventionen der standardmäßigen oder die aktuelle Kultur verwenden.The most common error made when persisting DateTime values as strings is to rely on the formatting conventions of the default or current culture. Probleme entstehen, wenn die aktuelle Kultur unterschiedlich speichern und Wiederherstellen von Zeichenfolgen ist.Problems arise if the current culture is different when saving and restoring the strings. Das folgende Beispiel veranschaulicht diese Probleme.The following example illustrates these problems. Er speichert fünf Datumsangaben, die Verwendung der Formatierungskonventionen der aktuellen Kultur, die in diesem Fall Englisch (USA) ist.It saves five dates using the formatting conventions of the current culture, which in this case is English (United States). Wiederhergestellt, die Datumsangaben, die mithilfe der Formatierungskonventionen der einer anderen Kultur, die in diesem Fall Englisch (Großbritannien) ist.It restores the dates using the formatting conventions of a different culture, which in this case is English (Great Britain). Da die Formatierungskonventionen der beiden Kulturen unterscheiden, zwei Datumsangaben können nicht wiederhergestellt werden und die verbleibenden drei Daten falsch interpretiert.Because the formatting conventions of the two cultures are different, two of the dates can't be restored, and the remaining three dates are interpreted incorrectly. Auch wenn die ursprünglichen Werte für Datum und Uhrzeit einzelne Zeitpunkte, der wiederhergestellten darstellen Zeiten sind falsch, da Zeitzoneninformationen verloren geht.Also, if the original date and time values represent single moments in time, the restored times are incorrect because time zone information is lost.

public static void PersistAsLocalStrings()
{
    SaveLocalDatesAsString();
    RestoreLocalDatesFromString();
}

private static void SaveLocalDatesAsString()
{
    DateTime[] dates = { new DateTime(2014, 6, 14, 6, 32, 0),
                   new DateTime(2014, 7, 10, 23, 49, 0),
                   new DateTime(2015, 1, 10, 1, 16, 0),
                   new DateTime(2014, 12, 20, 21, 45, 0),
                   new DateTime(2014, 6, 2, 15, 14, 0) };
    string output = null;

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    for (int ctr = 0; ctr < dates.Length; ctr++)
    {
        Console.WriteLine(dates[ctr].ToString("f"));
        output += dates[ctr].ToString() + (ctr != dates.Length - 1 ? "|" : "");
    }
    StreamWriter sw = new StreamWriter(filenameTxt);
    sw.Write(output);
    sw.Close();
    Console.WriteLine("Saved dates...");
}

private static void RestoreLocalDatesFromString()
{
    TimeZoneInfo.ClearCachedData();
    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
    StreamReader sr = new StreamReader(filenameTxt);
    string[] inputValues = sr.ReadToEnd().Split(new char[] { '|' },
                                                StringSplitOptions.RemoveEmptyEntries);
    sr.Close();
    Console.WriteLine("The dates on an {0} system:",
                      Thread.CurrentThread.CurrentCulture.Name);
    foreach (var inputValue in inputValues)
    {
        DateTime dateValue;
        if (DateTime.TryParse(inputValue, out dateValue))
        {
            Console.WriteLine($"'{inputValue}' --> {dateValue:f}");
        }
        else
        {
            Console.WriteLine("Cannot parse '{inputValue}'");
        }
    }
    Console.WriteLine("Restored dates...");
}
// When saved on an en-US system, the example displays the following output:
//       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
//       The dates on an en-US system:
//       Saturday, June 14, 2014 6:32 AM
//       Thursday, July 10, 2014 11:49 PM
//       Saturday, January 10, 2015 1:16 AM
//       Saturday, December 20, 2014 9:45 PM
//       Monday, June 02, 2014 3:14 PM
//       Saved dates...
//
// When restored on an en-GB system, the example displays the following output:
//       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
//       The dates on an en-GB system:
//       Cannot parse //6/14/2014 6:32:00 AM//
//       //7/10/2014 11:49:00 PM// --> 07 October 2014 23:49
//       //1/10/2015 1:16:00 AM// --> 01 October 2015 01:16
//       Cannot parse //12/20/2014 9:45:00 PM//
//       //6/2/2014 3:14:00 PM// --> 06 February 2014 15:14
//       Restored dates...
Public Sub PersistAsLocalStrings()
    SaveDatesAsStrings()
    RestoreDatesAsStrings()
End Sub

Private Sub SaveDatesAsStrings()
    Dim dates() As Date = {#6/14/2014 6:32AM#, #7/10/2014 11:49PM#,
                          #1/10/2015 1:16AM#, #12/20/2014 9:45PM#,
                          #6/2/2014 3:14PM#}
    Dim output As String = Nothing

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For ctr As Integer = 0 To dates.Length - 1
        Console.WriteLine(dates(ctr).ToString("f"))
        output += dates(ctr).ToString() + If(ctr <> dates.Length - 1, "|", "")
    Next
    Dim sw As New StreamWriter(filenameTxt)
    sw.Write(output)
    sw.Close()
    Console.WriteLine("Saved dates...")
End Sub

Private Sub RestoreDatesAsStrings()
    TimeZoneInfo.ClearCachedData()
    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB")
    Dim sr As New StreamReader(filenameTxt)
    Dim inputValues() As String = sr.ReadToEnd().Split({"|"c}, StringSplitOptions.RemoveEmptyEntries)
    sr.Close()
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For Each inputValue In inputValues
        Dim dateValue As Date
        If DateTime.TryParse(inputValue, dateValue) Then
            Console.WriteLine($"'{inputValue}' --> {dateValue:f}")
        Else
            Console.WriteLine($"Cannot parse '{inputValue}'")
        End If
    Next
    Console.WriteLine("Restored dates...")
End Sub
' When saved on an en-US system, the example displays the following output:
'       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
'       The dates on an en-US system:
'       Saturday, June 14, 2014 6:32 AM
'       Thursday, July 10, 2014 11:49 PM
'       Saturday, January 10, 2015 1:16 AM
'       Saturday, December 20, 2014 9:45 PM
'       Monday, June 02, 2014 3:14 PM
'       Saved dates...
'
' When restored on an en-GB system, the example displays the following output:
'       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
'       The dates on an en-GB system:
'       Cannot parse '6/14/2014 6:32:00 AM'
'       '7/10/2014 11:49:00 PM' --> 07 October 2014 23:49
'       '1/10/2015 1:16:00 AM' --> 01 October 2015 01:16
'       Cannot parse '12/20/2014 9:45:00 PM'
'       '6/2/2014 3:14:00 PM' --> 06 February 2014 15:14
'       Restored dates...

Roundtrip DateTime Werte erfolgreich, gehen Sie folgendermaßen vor:To round-trip DateTime values successfully, follow these steps:

  1. Wenn die Werte die einzelne Minuten Zeit darstellen, konvertieren Sie sie von der Ortszeit in UTC durch Aufrufen der ToUniversalTime Methode.If the values represent single moments of time, convert them from the local time to UTC by calling the ToUniversalTime method.
  2. Konvertieren von Datumsangaben in deren Zeichenfolgenrepräsentationen durch Aufrufen der ToString(String, IFormatProvider) oder String.Format(IFormatProvider, String, Object[]) überladen.Convert the dates to their string representations by calling the ToString(String, IFormatProvider) or String.Format(IFormatProvider, String, Object[]) overload. Verwenden Sie die Formatierungskonventionen der invarianten Kultur durch Angabe CultureInfo.InvariantCulture als die provider Argument.Use the formatting conventions of the invariant culture by specifying CultureInfo.InvariantCulture as the provider argument. Geben Sie an, dass der Wert mit der Standardformatzeichenfolge "O" oder "R" Round-Trip sollte.Specify that the value should round-trip by using the "O" or "R" standard format string.

Zum Wiederherstellen von dauerhaften DateTime Werte ohne Datenverlust, gehen Sie folgendermaßen vor:To restore the persisted DateTime values without data loss, follow these steps:

  1. Analysieren die Daten durch Aufrufen der ParseExact oder TryParseExact überladen.Parse the data by calling the ParseExact or TryParseExact overload. Geben Sie CultureInfo.InvariantCulture als die provider Argument, und verwenden, die die gleiche standardmäßige Formatzeichenfolge für die format Argument bei der Konvertierung.Specify CultureInfo.InvariantCulture as the provider argument, and use the same standard format string you used for the format argument during conversion. Enthalten die DateTimeStyles.RoundtripKind Wert in der styles Argument.Include the DateTimeStyles.RoundtripKind value in the styles argument.
  2. Wenn die DateTime Werte darzustellen, einzelne Zeitpunkte, Aufruf der ToLocalTime Methode, um das analysierte Datum in Ortszeit von UTC zu konvertieren.If the DateTime values represent single moments in time, call the ToLocalTime method to convert the parsed date from UTC to local time.

Im folgenden Beispiel wird die invariante Kultur und die Standardformatzeichenfolge "O", um sicherzustellen, dass DateTime den gleichen Zeitpunkt unabhängig vom System, der Kultur oder der Zeitzone der Quell- und Zielsystemen zur Darstellung von Werten, die gespeichert und wiederhergestellt.The following example uses the invariant culture and the "O" standard format string to ensure that DateTime values saved and restored represent the same moment in time regardless of the system, culture, or time zone of the source and target systems.

public static void PersistAsInvariantStrings()
{
    SaveDatesAsInvariantStrings();
    RestoreDatesAsInvariantStrings();
}

private static void SaveDatesAsInvariantStrings()
{
    DateTime[] dates = { new DateTime(2014, 6, 14, 6, 32, 0),
                   new DateTime(2014, 7, 10, 23, 49, 0),
                   new DateTime(2015, 1, 10, 1, 16, 0),
                   new DateTime(2014, 12, 20, 21, 45, 0),
                   new DateTime(2014, 6, 2, 15, 14, 0) };
    string output = null;

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    for (int ctr = 0; ctr < dates.Length; ctr++)
    {
        Console.WriteLine(dates[ctr].ToString("f"));
        output += dates[ctr].ToUniversalTime().ToString("O", CultureInfo.InvariantCulture)
                  + (ctr != dates.Length - 1 ? "|" : "");
    }
    StreamWriter sw = new StreamWriter(filenameTxt);
    sw.Write(output);
    sw.Close();
    Console.WriteLine("Saved dates...");
}

private static void RestoreDatesAsInvariantStrings()
{
    TimeZoneInfo.ClearCachedData();
    Console.WriteLine("Current Time Zone: {0}",
                      TimeZoneInfo.Local.DisplayName);
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
    StreamReader sr = new StreamReader(filenameTxt);
    string[] inputValues = sr.ReadToEnd().Split(new char[] { '|' },
                                                StringSplitOptions.RemoveEmptyEntries);
    sr.Close();
    Console.WriteLine("The dates on an {0} system:",
                      Thread.CurrentThread.CurrentCulture.Name);
    foreach (var inputValue in inputValues)
    {
        DateTime dateValue;
        if (DateTime.TryParseExact(inputValue, "O", CultureInfo.InvariantCulture,
                              DateTimeStyles.RoundtripKind, out dateValue))
        {
            Console.WriteLine($"'{inputValue}' --> {dateValue.ToLocalTime():f}");
        }
        else
        {
            Console.WriteLine("Cannot parse '{0}'", inputValue);
        }
    }
    Console.WriteLine("Restored dates...");
}
// When saved on an en-US system, the example displays the following output:
//       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
//       The dates on an en-US system:
//       Saturday, June 14, 2014 6:32 AM
//       Thursday, July 10, 2014 11:49 PM
//       Saturday, January 10, 2015 1:16 AM
//       Saturday, December 20, 2014 9:45 PM
//       Monday, June 02, 2014 3:14 PM
//       Saved dates...
//
// When restored on an en-GB system, the example displays the following output:
//       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
//       The dates on an en-GB system:
//       '2014-06-14T13:32:00.0000000Z' --> 14 June 2014 14:32
//       '2014-07-11T06:49:00.0000000Z' --> 11 July 2014 07:49
//       '2015-01-10T09:16:00.0000000Z' --> 10 January 2015 09:16
//       '2014-12-21T05:45:00.0000000Z' --> 21 December 2014 05:45
//       '2014-06-02T22:14:00.0000000Z' --> 02 June 2014 23:14
//       Restored dates...
Public Sub PersistAsInvariantStrings()
    SaveDatesAsInvariantStrings()
    RestoreDatesAsInvariantStrings()
End Sub

Private Sub SaveDatesAsInvariantStrings()
    Dim dates() As Date = {#6/14/2014 6:32AM#, #7/10/2014 11:49PM#,
                          #1/10/2015 1:16AM#, #12/20/2014 9:45PM#,
                          #6/2/2014 3:14PM#}
    Dim output As String = Nothing

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For ctr As Integer = 0 To dates.Length - 1
        Console.WriteLine(dates(ctr).ToString("f"))
        output += dates(ctr).ToUniversalTime().ToString("O", CultureInfo.InvariantCulture) +
                                   If(ctr <> dates.Length - 1, "|", "")
    Next
    Dim sw As New StreamWriter(filenameTxt)
    sw.Write(output)
    sw.Close()
    Console.WriteLine("Saved dates...")
End Sub

Private Sub RestoreDatesAsInvariantStrings()
    TimeZoneInfo.ClearCachedData()
    Console.WriteLine("Current Time Zone: {0}",
                    TimeZoneInfo.Local.DisplayName)
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB")
    Dim sr As New StreamReader(filenameTxt)
    Dim inputValues() As String = sr.ReadToEnd().Split({"|"c}, StringSplitOptions.RemoveEmptyEntries)
    sr.Close()
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For Each inputValue In inputValues
        Dim dateValue As Date
        If DateTime.TryParseExact(inputValue, "O", CultureInfo.InvariantCulture,
                          DateTimeStyles.RoundtripKind, dateValue) Then
            Console.WriteLine($"'{inputValue}' --> {dateValue.ToLocalTime():f}")
        Else
            Console.WriteLine($"Cannot parse '{inputValue}'")
        End If
    Next
    Console.WriteLine("Restored dates...")
End Sub
' When saved on an en-US system, the example displays the following output:
'       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
'       The dates on an en-US system:
'       Saturday, June 14, 2014 6:32 AM
'       Thursday, July 10, 2014 11:49 PM
'       Saturday, January 10, 2015 1:16 AM
'       Saturday, December 20, 2014 9:45 PM
'       Monday, June 02, 2014 3:14 PM
'       Saved dates...
'
' When restored on an en-GB system, the example displays the following output:
'       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
'       The dates on an en-GB system:
'       '2014-06-14T13:32:00.0000000Z' --> 14 June 2014 14:32
'       '2014-07-11T06:49:00.0000000Z' --> 11 July 2014 07:49
'       '2015-01-10T09:16:00.0000000Z' --> 10 January 2015 09:16
'       '2014-12-21T05:45:00.0000000Z' --> 21 December 2014 05:45
'       '2014-06-02T22:14:00.0000000Z' --> 02 June 2014 23:14
'       Restored dates...

Beibehalten von Werten als ganze ZahlenPersisting values as integers

Sie können ein Datum und Uhrzeit als beibehalten einer Int64 Wert, der eine Anzahl von Ticks darstellt.You can persist a date and time as an Int64 value that represents a number of ticks. In diesem Fall Sie haben nicht die Kultur der Systeme berücksichtigt die DateTime Werte persistent gespeichert und wiederhergestellt werden.In this case, you don't have to consider the culture of the systems the DateTime values are persisted and restored on.

Beibehalten einer DateTime Wert als ganze Zahl:To persist a DateTime value as an integer:

  • Wenn die DateTime Werte einzelne Zeitpunkte darstellen, konvertieren Sie sie in UTC durch Aufrufen der ToUniversalTime Methode.If the DateTime values represent single moments in time, convert them to UTC by calling the ToUniversalTime method.
  • Rufen Sie die Anzahl der Ticks, dargestellt durch die DateTime Wert aus der Ticks Eigenschaft.Retrieve the number of ticks represented by the DateTime value from its Ticks property.

Zum Wiederherstellen einer DateTime -Wert, der als ganze Zahl persistent gespeichert wurde:To restore a DateTime value that has been persisted as an integer:

  1. Instanziieren Sie ein neues DateTime -Objekts durch Übergeben der Int64 Wert der DateTime(Int64) Konstruktor.Instantiate a new DateTime object by passing the Int64 value to the DateTime(Int64) constructor.
  2. Wenn die DateTime Wert stellt einen einzelnen Zeitpunkt dar, die sie von der UTC in die lokale Zeit konvertieren, durch Aufrufen der ToLocalTime Methode.If the DateTime value represents a single moment in time, convert it from UTC to the local time by calling the ToLocalTime method.

Im folgenden Beispiel wird weiterhin besteht, ein Array von DateTime Werte als ganze Zahlen in einem System in den USA Zeitzone Pacific verwendet wird.The following example persists an array of DateTime values as integers on a system in the U.S. Pacific Time zone. Sie werden auf einem System in der UTC-Zone wiederhergestellt.It restores it on a system in the UTC zone. Enthält die Datei, die ganzen Zahlen enthält, ein Int32 hodnota ukazuje, die Gesamtanzahl der Int64 Werte, die unmittelbar folgen.The file that contains the integers includes an Int32 value that indicates the total number of Int64 values that immediately follow it.

public static void PersistAsIntegers()
{
    SaveDatesAsInts();
    RestoreDatesAsInts();
}

private static void SaveDatesAsInts()
{
    DateTime[] dates = { new DateTime(2014, 6, 14, 6, 32, 0),
                   new DateTime(2014, 7, 10, 23, 49, 0),
                   new DateTime(2015, 1, 10, 1, 16, 0),
                   new DateTime(2014, 12, 20, 21, 45, 0),
                   new DateTime(2014, 6, 2, 15, 14, 0) };

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    long[] ticks = new long[dates.Length];
    for (int ctr = 0; ctr < dates.Length; ctr++)
    {
        Console.WriteLine(dates[ctr].ToString("f"));
        ticks[ctr] = dates[ctr].ToUniversalTime().Ticks;
    }
    FileStream fs = new FileStream(filenameInts, FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    bw.Write(ticks.Length);
    foreach (var tick in ticks)
        bw.Write(tick);

    bw.Close();
    Console.WriteLine("Saved dates...");
}

private static void RestoreDatesAsInts()
{
    TimeZoneInfo.ClearCachedData();
    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");
    FileStream fs = new FileStream(filenameInts, FileMode.Open);
    BinaryReader br = new BinaryReader(fs);
    int items;
    DateTime[] dates;

    try
    {
        items = br.ReadInt32();
        dates = new DateTime[items];

        for (int ctr = 0; ctr < items; ctr++)
        {
            long ticks = br.ReadInt64();
            dates[ctr] = new DateTime(ticks).ToLocalTime();
        }
    }
    catch (EndOfStreamException)
    {
        Console.WriteLine("File corruption detected. Unable to restore data...");
        return;
    }
    catch (IOException)
    {
        Console.WriteLine("Unspecified I/O error. Unable to restore data...");
        return;
    }
    // Thrown during array initialization.
    catch (OutOfMemoryException)
    {
        Console.WriteLine("File corruption detected. Unable to restore data...");
        return;
    }
    finally
    {
        br.Close();
    }

    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    foreach (var value in dates)
        Console.WriteLine(value.ToString("f"));

    Console.WriteLine("Restored dates...");
}
// When saved on an en-US system, the example displays the following output:
//       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
//       The dates on an en-US system:
//       Saturday, June 14, 2014 6:32 AM
//       Thursday, July 10, 2014 11:49 PM
//       Saturday, January 10, 2015 1:16 AM
//       Saturday, December 20, 2014 9:45 PM
//       Monday, June 02, 2014 3:14 PM
//       Saved dates...
//
// When restored on an en-GB system, the example displays the following output:
//       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
//       The dates on an en-GB system:
//       14 June 2014 14:32
//       11 July 2014 07:49
//       10 January 2015 09:16
//       21 December 2014 05:45
//       02 June 2014 23:14
//       Restored dates...
Public Sub PersistAsIntegers()
    SaveDatesAsIntegers()
    RestoreDatesAsIntegers()
End Sub

Private Sub SaveDatesAsIntegers()
    Dim dates() As Date = {#6/14/2014 6:32AM#, #7/10/2014 11:49PM#,
                          #1/10/2015 1:16AM#, #12/20/2014 9:45PM#,
                          #6/2/2014 3:14PM#}

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    Dim ticks(dates.Length - 1) As Long
    For ctr As Integer = 0 To dates.Length - 1
        Console.WriteLine(dates(ctr).ToString("f"))
        ticks(ctr) = dates(ctr).ToUniversalTime().Ticks
    Next
    Dim fs As New FileStream(filenameInts, FileMode.Create)
    Dim bw As New BinaryWriter(fs)
    bw.Write(ticks.Length)
    For Each tick In ticks
        bw.Write(tick)
    Next
    bw.Close()
    Console.WriteLine("Saved dates...")
End Sub

Private Sub RestoreDatesAsIntegers()
    TimeZoneInfo.ClearCachedData()
    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB")
    Dim fs As New FileStream(filenameInts, FileMode.Open)
    Dim br As New BinaryReader(fs)
    Dim items As Integer
    Dim dates() As DateTime

    Try
        items = br.ReadInt32()
        ReDim dates(items - 1)

        For ctr As Integer = 0 To items - 1
            Dim ticks As Long = br.ReadInt64()
            dates(ctr) = New DateTime(ticks).ToLocalTime()
        Next
    Catch e As EndOfStreamException
        Console.WriteLine("File corruption detected. Unable to restore data...")
        Exit Sub
    Catch e As IOException
        Console.WriteLine("Unspecified I/O error. Unable to restore data...")
        Exit Sub
    Catch e As OutOfMemoryException     'Thrown in array initialization.
        Console.WriteLine("File corruption detected. Unable to restore data...")
        Exit Sub
    Finally
        br.Close()
    End Try

    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For Each value In dates
        Console.WriteLine(value.ToString("f"))
    Next
    Console.WriteLine("Restored dates...")
End Sub
' When saved on an en-US system, the example displays the following output:
'       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
'       The dates on an en-US system:
'       Saturday, June 14, 2014 6:32 AM
'       Thursday, July 10, 2014 11:49 PM
'       Saturday, January 10, 2015 1:16 AM
'       Saturday, December 20, 2014 9:45 PM
'       Monday, June 02, 2014 3:14 PM
'       Saved dates...
'
' When restored on an en-GB system, the example displays the following output:
'       Current Time Zone: (UTC) Dublin, Edinburgh, Lisbon, London
'       The dates on an en-GB system:
'       14 June 2014 14:32
'       11 July 2014 07:49
'       10 January 2015 09:16
'       21 December 2014 05:45
'       02 June 2014 23:14
'       Restored dates...

Serialisieren von DateTime-WerteSerializing DateTime values

Sie können beibehalten DateTime Werte über die Serialisierung in einen Stream oder Datei, und klicken Sie dann wiederherstellen werden durch Deserialisierung.You can persist DateTime values through serialization to a stream or file, and then restore them through deserialization. DateTime Daten werden in einem angegebenen Objekt-Format serialisiert.DateTime data is serialized in some specified object format. Die Objekte werden wiederhergestellt, wenn sie deserialisiert werden.The objects are restored when they are deserialized. Ein Formatierungsprogramm oder Serialisierer, wie z. B. XmlSerializer oder BinaryFormatter, verarbeitet die Serialisierung und Deserialisierung.A formatter or serializer, such as XmlSerializer or BinaryFormatter, handles the process of serialization and deserialization. Weitere Informationen zu Serialisierung und die Typen der Serialisierung von .NET Framework unterstützt werden, finden Sie unter Serialisierung.For more information about serialization and the types of serialization supported by the .NET Framework, see Serialization.

Im folgenden Beispiel wird die XmlSerializer Klasse zum Serialisieren und Deserialisieren DateTime Werte.The following example uses the XmlSerializer class to serialize and deserialize DateTime values. Die Werte stehen allen Schaltjahr Tage im 21. Jahrhundert.The values represent all leap year days in the twenty-first century. Die Ausgabe gibt das Ergebnis an das Beispiel auf einem System ausgeführt wird, dessen aktuelle Kultur Englisch (Großbritannien) ist.The output represents the result if the example is run on a system whose current culture is English (Great Britain). Da Sie deserialisiert haben die DateTime Objekts selbst, der Code keine kulturelle Unterschiede in der Datums- und Zeitformate zu behandeln.Because you've deserialized the DateTime object itself, the code doesn't have to handle cultural differences in date and time formats.

public static void PersistAsXML()
{
    // Serialize the data.
    List<DateTime> leapYears = new List<DateTime>();
    for (int year = 2000; year <= 2100; year += 4)
    {
        if (DateTime.IsLeapYear(year))
            leapYears.Add(new DateTime(year, 2, 29));
    }
    DateTime[] dateArray = leapYears.ToArray();

    XmlSerializer serializer = new XmlSerializer(dateArray.GetType());
    TextWriter sw = new StreamWriter(filenameXml);

    try
    {
        serializer.Serialize(sw, dateArray);
    }
    catch (InvalidOperationException e)
    {
        Console.WriteLine(e.InnerException.Message);
    }
    finally
    {
        if (sw != null) sw.Close();
    }

    // Deserialize the data.
    DateTime[] deserializedDates;
    using (FileStream fs = new FileStream(filenameXml, FileMode.Open))
    {
        deserializedDates = (DateTime[])serializer.Deserialize(fs);
    }

    // Display the dates.
    Console.WriteLine($"Leap year days from 2000-2100 on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    int nItems = 0;
    foreach (var dat in deserializedDates)
    {
        Console.Write($"   {dat:d}     ");
        nItems++;
        if (nItems % 5 == 0)
            Console.WriteLine();
    }
}
// The example displays the following output:
//    Leap year days from 2000-2100 on an en-GB system:
//       29/02/2000       29/02/2004       29/02/2008       29/02/2012       29/02/2016
//       29/02/2020       29/02/2024       29/02/2028       29/02/2032       29/02/2036
//       29/02/2040       29/02/2044       29/02/2048       29/02/2052       29/02/2056
//       29/02/2060       29/02/2064       29/02/2068       29/02/2072       29/02/2076
//       29/02/2080       29/02/2084       29/02/2088       29/02/2092       29/02/2096
Public Sub PersistAsXml()
    ' Serialize the data.
    Dim leapYears As New List(Of DateTime)()
    For year As Integer = 2000 To 2100 Step 4
        If Date.IsLeapYear(year) Then
            leapYears.Add(New Date(year, 2, 29))
        End If
    Next
    Dim dateArray() As DateTime = leapYears.ToArray()

    Dim serializer As New XmlSerializer(dateArray.GetType())
    Dim sw As TextWriter = New StreamWriter(filenameXml)

    Try
        serializer.Serialize(sw, dateArray)
    Catch e As InvalidOperationException
        Console.WriteLine(e.InnerException.Message)
    Finally
        If sw IsNot Nothing Then sw.Close()
    End Try

    ' Deserialize the data.
    Dim deserializedDates() As Date
    Using fs As New FileStream(filenameXml, FileMode.Open)
        deserializedDates = CType(serializer.Deserialize(fs), Date())
    End Using

    ' Display the dates.
    Console.WriteLine($"Leap year days from 2000-2100 on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    Dim nItems As Integer
    For Each dat In deserializedDates
        Console.Write($"   {dat:d}     ")
        nItems += 1
        If nItems Mod 5 = 0 Then Console.WriteLine()
    Next
End Sub
' The example displays the following output:
'    Leap year days from 2000-2100 on an en-GB system:
'       29/02/2000       29/02/2004       29/02/2008       29/02/2012       29/02/2016
'       29/02/2020       29/02/2024       29/02/2028       29/02/2032       29/02/2036
'       29/02/2040       29/02/2044       29/02/2048       29/02/2052       29/02/2056
'       29/02/2060       29/02/2064       29/02/2068       29/02/2072       29/02/2076
'       29/02/2080       29/02/2084       29/02/2088       29/02/2092       29/02/2096

Im vorherige Beispiel enthält keine Informationen.The previous example doesn't include time information. Wenn eine DateTime Wert einem bestimmten Zeitpunkt darstellt, und wird als lokale Zeit angegeben, die sie von der Ortszeit in UTC konvertieren, bevor die Serialisierung durch das Aufrufen der ToUniversalTime Methode.If a DateTime value represents a moment in time and is expressed as a local time, convert it from local time to UTC before serializing it by calling the ToUniversalTime method. Nachdem Sie die deserialisieren, Konvertieren von UTC in eine lokale Zeit durch Aufrufen der ToLocalTime Methode.After you deserialize it, convert it from UTC to local time by calling the ToLocalTime method. Im folgenden Beispiel wird die BinaryFormatter Klasse zum Serialisieren DateTime Daten auf einem System in den USA Zeitzone Pacific Standard Time und Deserialisierung wird in einem System in den USA Zentrale Standardzone.The following example uses the BinaryFormatter class to serialize DateTime data on a system in the U.S. Pacific Standard Time zone and to deserialize it on a system in the U.S. Central Standard zone.

public static void PersistBinary()
{
    SaveDatesBinary();
    RestoreDatesBinary();
}

private static void SaveDatesBinary()
{
    DateTime[] dates = { new DateTime(2014, 6, 14, 6, 32, 0),
                   new DateTime(2014, 7, 10, 23, 49, 0),
                   new DateTime(2015, 1, 10, 1, 16, 0),
                   new DateTime(2014, 12, 20, 21, 45, 0),
                   new DateTime(2014, 6, 2, 15, 14, 0) };
    FileStream fs = new FileStream(filenameBin, FileMode.Create);
    BinaryFormatter bin = new BinaryFormatter();

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    for (int ctr = 0; ctr < dates.Length; ctr++)
    {
        Console.WriteLine(dates[ctr].ToString("f"));
        dates[ctr] = dates[ctr].ToUniversalTime();
    }
    bin.Serialize(fs, dates);
    fs.Close();
    Console.WriteLine("Saved dates...");
}

private static void RestoreDatesBinary()
{
    TimeZoneInfo.ClearCachedData();
    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}");
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

    FileStream fs = new FileStream(filenameBin, FileMode.Open);
    BinaryFormatter bin = new BinaryFormatter();
    DateTime[] dates = (DateTime[])bin.Deserialize(fs);
    fs.Close();

    Console.WriteLine($"The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:");
    foreach (var value in dates)
        Console.WriteLine(value.ToLocalTime().ToString("f"));

    Console.WriteLine("Restored dates...");
}
// When saved on an en-US system, the example displays the following output:
//       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
//       The dates on an en-US system:
//       Saturday, June 14, 2014 6:32 AM
//       Thursday, July 10, 2014 11:49 PM
//       Saturday, January 10, 2015 1:16 AM
//       Saturday, December 20, 2014 9:45 PM
//       Monday, June 02, 2014 3:14 PM
//       Saved dates...
//
// When restored on an en-GB system, the example displays the following output:
//       Current Time Zone: (UTC-6:00) Central Time (US & Canada)
//       The dates on an en-GB system:
//       14 June 2014 08:32
//       11 July 2014 01:49
//       10 January 2015 03:16
//       20 December 2014 23:45
//       02 June 2014 17:14
//       Restored dates...
Public Sub PersistBinary()
    SaveDatesBinary()
    RestoreDatesBinary()
End Sub

Private Sub SaveDatesBinary()
    Dim dates() As Date = {#6/14/2014 6:32AM#, #7/10/2014 11:49PM#,
                          #1/10/2015 1:16AM#, #12/20/2014 9:45PM#,
                          #6/2/2014 3:14PM#}
    Dim fs As New FileStream(filenameBin, FileMode.Create)
    Dim bin As New BinaryFormatter()

    Console.WriteLine($"Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Console.WriteLine("The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For ctr As Integer = 0 To dates.Length - 1
        Console.WriteLine(dates(ctr).ToString("f"))
        dates(ctr) = dates(ctr).ToUniversalTime()
    Next
    bin.Serialize(fs, dates)
    fs.Close()
    Console.WriteLine("Saved dates...")
End Sub

Private Sub RestoreDatesBinary()
    TimeZoneInfo.ClearCachedData()
    Console.WriteLine("Current Time Zone: {TimeZoneInfo.Local.DisplayName}")
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB")

    Dim fs As New FileStream(filenameBin, FileMode.Open)
    Dim bin As New BinaryFormatter()
    Dim dates() As DateTime = DirectCast(bin.Deserialize(fs), Date())
    fs.Close()

    Console.WriteLine("The dates on an {Thread.CurrentThread.CurrentCulture.Name} system:")
    For Each value In dates
        Console.WriteLine(value.ToLocalTime().ToString("f"))
    Next
    Console.WriteLine("Restored dates...")
End Sub
' When saved on an en-US system, the example displays the following output:
'       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
'       The dates on an en-US system:
'       Saturday, June 14, 2014 6:32 AM
'       Thursday, July 10, 2014 11:49 PM
'       Saturday, January 10, 2015 1:16 AM
'       Saturday, December 20, 2014 9:45 PM
'       Monday, June 02, 2014 3:14 PM
'       Saved dates...
'
' When restored on an en-GB system, the example displays the following output:
'       Current Time Zone: (UTC-6:00) Central Time (US & Canada)
'       The dates on an en-GB system:
'       14 June 2014 08:32
'       11 July 2014 01:49
'       10 January 2015 03:16
'       20 December 2014 11:45
'       02 June 2014 17:14
'       Restored dates...

Serialisieren von Daten für "DateTime" und ZeitzoneSerializing DateTime and time zone data

In allen vorherigen Beispielen davon ausgegangen, dass DateTime Werte werden als Ortszeiten angegeben.The previous examples all assumed that DateTime values are expressed as local times. Der Code konvertiert die Werten zwischen UTC und Ortszeit aus, sodass sie den gleichen Zeitpunkt für die Quell- und Zielsystemen widerspiegeln.The code converted the values between UTC and local time so they reflect the same moment in time on the source and target systems. DateTime Werte können auch Zeitpunkte in einer Zeitzone als Local und UTC.DateTime values may also reflect moments in time in a time zone other than local and UTC. Da die DateTime Struktur ist nicht für Zeitzonen unterstützen, müssen Sie sowohl den zum Serialisieren der DateTime Wert und die TimeZoneInfo Objekt, das die Zeitzone darstellt.Because the DateTime structure is not time zone-aware, you have to serialize both the DateTime value and the TimeZoneInfo object that represents its time zone. Erstellen Sie einen Typ, dessen Felder enthalten, sowohl sind, der DateTime Wert und die Zeitzone.Create a type whose fields include both the DateTime value and its time zone. Das folgende Beispiel definiert eine DateWithTimeZone Struktur.The following example defines a DateWithTimeZone structure.

using System;

namespace DateTimeExtensions
{
    [Serializable]
    public struct DateWithTimeZone
    {
        private TimeZoneInfo tz;
        private DateTime dt;

        public DateWithTimeZone(DateTime dateValue, TimeZoneInfo timeZone)
        {
            dt = dateValue;
            if (timeZone == null)
                tz = TimeZoneInfo.Local;
            else
                tz = timeZone;
        }

        public TimeZoneInfo TimeZone
        {
            get { return (tz); }
            set { tz = value; }
        }

        public DateTime DateTime
        {
            get { return (dt); }
            set { dt = value; }
        }
    }
}
Namespace DateTimeExtensions
    <Serializable> Public Structure DateWithTimeZone
        Private tz As TimeZoneInfo
        Private dt As DateTime

        Public Sub New(dateValue As DateTime, timeZone As TimeZoneInfo)
            dt = dateValue
            If timeZone Is Nothing Then
                tz = TimeZoneInfo.Local
            Else
                tz = timeZone
            End If
        End Sub

        Public Property TimeZone As TimeZoneInfo
            Get
                Return tz
            End Get
            Set
                tz = Value
            End Set
        End Property

        Public Property DateTime As Date
            Get
                Return dt
            End Get
            Set
                dt = Value
            End Set
        End Property
    End Structure
End Namespace

Wichtig

Die DateWithTimeZone Struktur wird verwendet, in den nächsten beiden Beispielen wird das Serialisieren und Deserialisieren ein Array von DateWithTimeZone Objekte.The DateWithTimeZone structure is used in the next two examples, which serialize and deserialize an array of DateWithTimeZone objects. Sehen Sie entweder die Quelle für die gesamte Gruppe der Beispiele in diesem Artikel Visual Basic oder c# aus docs-Repository auf GitHub.You can view the source for the entire set of examples from this article in either Visual Basic or C# from the docs repository on GitHub.

Mithilfe der DateWithTimeZone Struktur, Sie können dann beibehalten, Datum und die Uhrzeit sowie Informationen zur Zeitzone.By using the DateWithTimeZone structure, you can then persist date and time along with time zone information. Im folgenden Beispiel wird die BinaryFormatter Klasse, um ein Array von Serialisieren DateWithTimeZone Objekte.The following example uses the BinaryFormatter class to serialize an array of DateWithTimeZone objects.

public static void SaveDateWithTimeZone()
{
    DateWithTimeZone[] dates = { new DateWithTimeZone(new DateTime(2014, 8, 9, 19, 30, 0),
                              TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),
                          new DateWithTimeZone(new DateTime(2014, 8, 15, 19, 0, 0),
                              TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")),
                          new DateWithTimeZone(new DateTime(2014, 8, 22, 19, 30, 0),
                              TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),
                          new DateWithTimeZone(new DateTime(2014, 8, 28, 19, 0, 0),
                              TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")) };
    FileStream fs = new FileStream(@".\Schedule.bin", FileMode.Create);
    BinaryFormatter formatter = new BinaryFormatter();
    try
    {
        formatter.Serialize(fs, dates);
        // Display dates.
        foreach (var date in dates)
        {
            TimeZoneInfo tz = date.TimeZone;
            Console.WriteLine($"{date.DateTime} {(tz.IsDaylightSavingTime(date.DateTime) ? tz.DaylightName : tz.StandardName)}");
        }
    }
    catch (SerializationException e)
    {
        Console.WriteLine($"Serialization failed. Reason: {e.Message}");
    }
    finally
    {
        if (fs != null) fs.Close();
    }
}
// The example displays the following output:
//       8/9/2014 7:30:00 PM Eastern Daylight Time
//       8/15/2014 7:00:00 PM Pacific Daylight Time
//       8/22/2014 7:30:00 PM Eastern Daylight Time
//       8/28/2014 7:00:00 PM Eastern Daylight Time
Public Sub SaveDateWithTimeZone()
    Dim dates() As DateWithTimeZone = {New DateWithTimeZone(#8/9/2014 7:30PM#,
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),
                                  New DateWithTimeZone(#8/15/2014 7:00PM#,
                                      TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")),
                                  New DateWithTimeZone(#8/22/2014 7:30PM#,
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),
                                  New DateWithTimeZone(#8/28/2014 7:00PM#,
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"))}
    Dim fs As New FileStream(".\Schedule.bin", FileMode.Create)
    Dim formatter As New BinaryFormatter()
    Try
        formatter.Serialize(fs, dates)
    Catch e As SerializationException
        Console.WriteLine($"Serialization failed. Reason: {e.Message}")
    Finally
        If fs IsNot Nothing Then fs.Close()
    End Try
    ' Display dates.
    For Each dateInfo In dates
        Dim tz As TimeZoneInfo = dateInfo.TimeZone
        Console.WriteLine($"{dateInfo.DateTime} {If(tz.IsDaylightSavingTime(dateInfo.DateTime), tz.DaylightName, tz.StandardName)}")
    Next
End Sub
' The example displays the following output:
'       8/9/2014 7:30:00 PM Eastern Daylight Time
'       8/15/2014 7:00:00 PM Pacific Daylight Time
'       8/22/2014 7:30:00 PM Eastern Daylight Time
'       8/28/2014 7:00:00 PM Eastern Daylight Time

Das folgende Beispiel ruft dann die BinaryFormatter.Deserialize Methode zu deserialisieren.The following example then calls the BinaryFormatter.Deserialize method to deserialize it.

public static void RestoreDateWithTimeZone()
{
    const string filename = @".\Schedule.bin";
    FileStream fs;
    if (File.Exists(filename))
        fs = new FileStream(filename, FileMode.Open);
    else
    {
        Console.WriteLine("Unable to find file to deserialize.");
        return;
    }

    BinaryFormatter formatter = new BinaryFormatter();
    DateWithTimeZone[] dates;
    try
    {
        dates = (DateWithTimeZone[])formatter.Deserialize(fs);
        // Display dates.
        foreach (var date in dates)
        {
            TimeZoneInfo tz = date.TimeZone;
            Console.WriteLine($"{ date.DateTime} {(tz.IsDaylightSavingTime(date.DateTime) ? tz.DaylightName : tz.StandardName)}");
        }
    }
    catch (SerializationException e)
    {
        Console.WriteLine($"Deserialization failed. Reason: {e.Message}");
    }
    finally
    {
        if (fs != null) fs.Close();
    }
}
// The example displays the following output:
//       8/9/2014 7:30:00 PM Eastern Daylight Time
//       8/15/2014 7:00:00 PM Pacific Daylight Time
//       8/22/2014 7:30:00 PM Eastern Daylight Time
//       8/28/2014 7:00:00 PM Eastern Daylight Time
Public Sub RestoreDateWithTimeZone()
    Dim fs As FileStream
    If File.Exists(filename) Then
        fs = New FileStream(filename, FileMode.Open)
    Else
        Console.WriteLine("Unable to find file to deserialize.")
        Exit Sub
    End If

    Dim formatter As New BinaryFormatter()
    Dim dates() As DateWithTimeZone = Nothing
    Try
        dates = DirectCast(formatter.Deserialize(fs), DateWithTimeZone())
        ' Display dates.
        For Each dateInfo In dates
            Dim tz As TimeZoneInfo = dateInfo.TimeZone
            Console.WriteLine($"{dateInfo.DateTime} {If(tz.IsDaylightSavingTime(dateInfo.DateTime), tz.DaylightName, tz.StandardName)}")
        Next
    Catch e As SerializationException
        Console.WriteLine("Deserialization failed. Reason: {e.Message}")
    Finally
        If fs IsNot Nothing Then fs.Close()
    End Try
End Sub
' The example displays the following output:
'       8/9/2014 7:30:00 PM Eastern Daylight Time
'       8/15/2014 7:00:00 PM Pacific Daylight Time
'       8/22/2014 7:30:00 PM Eastern Daylight Time
'       8/28/2014 7:00:00 PM Eastern Daylight Time

DateTime-Wert im Vergleich zu TimeSpanDateTime vs. TimeSpan

Die DateTime und TimeSpan Werttypen unterscheiden sich in, das eine DateTime rechtzeitig einen Zeitpunkt darstellt, während eine TimeSpan stellt ein Zeitintervall dar.The DateTime and TimeSpan value types differ in that a DateTime represents an instant in time whereas a TimeSpan represents a time interval. Sie können eine Instanz des subtrahieren DateTime von einem anderen zum Abrufen einer TimeSpan -Objekt, das Zeitintervall zwischen ihnen darstellt.You can subtract one instance of DateTime from another to obtain a TimeSpan object that represents the time interval between them. Oder Sie können ein positives Ergebnis hinzufügen TimeSpan mit dem aktuellen DateTime zum Abrufen einer DateTime Wert, der ein zukünftiges Datum darstellt.Or you could add a positive TimeSpan to the current DateTime to obtain a DateTime value that represents a future date.

Sie können addieren oder Subtrahieren von einem Zeitintervall aus einem DateTime Objekt.You can add or subtract a time interval from a DateTime object. Zeitintervalle können negativ oder positiv sein und in Einheiten wie z. B. Zeiteinheiten ausgedrückt werden können Sekunden oder als eine TimeSpan Objekt.Time intervals can be negative or positive, and they can be expressed in units such as ticks, seconds, or as a TimeSpan object.

Vergleich, Gleichheit innerhalb des ToleranzbereichsComparing for equality within tolerance

Für die Durchführung von Gleichheitsvergleichen DateTime Werte sind genau.Equality comparisons for DateTime values are exact. Das bedeutet, dass zwei Werte ausgedrückt werden müssen, als die gleiche Anzahl von Ticks als gleich betrachtet werden.That means two values must be expressed as the same number of ticks to be considered equal. Dass mit einfacher Genauigkeit häufig unnötiger oder sogar falsch für viele Anwendungen.That precision is often unecessary or even incorrect for many applications. Häufig möchten Sie getestet, ob DateTime Objekte sind ungefähr gleich.Often, you want to test if DateTime objects are roughly equal.

Im folgende Beispiel wird veranschaulicht, wie etwa verglichen entsprechende DateTime Werte.The following example demonstrates how to compare roughly equivalent DateTime values. Er akzeptiert einen kleineren Rand Unterschied gleich zulässig.It accepts a small margin of difference when declaring them equal.

[!code-csharpSystem.DateTime.Comparisons#1][!code-csharpSystem.DateTime.Comparisons#1]

Public Shared Function RoughlyEquals(time As DateTime, timeWithWindow As DateTime,
                             windowInSeconds As Integer,
                             frequencyInSeconds As Integer) As Boolean
    Dim delta As Long = (timeWithWindow.Subtract(time)).TotalSeconds _
                                            Mod frequencyInSeconds

    If delta > windowInSeconds Then
        delta = frequencyInSeconds - delta
    End If

    Return Math.Abs(delta) < windowInSeconds
End Function

Public Shared Sub TestRoughlyEquals()
    Dim window As Integer = 10
    Dim freq As Integer = 60 * 60 * 2 ' 2 hours;
    Dim d1 As DateTime = DateTime.Now

    Dim d2 As DateTime = d1.AddSeconds((2 * window))
    Dim d3 As DateTime = d1.AddSeconds((-2 * window))
    Dim d4 As DateTime = d1.AddSeconds((window / 2))
    Dim d5 As DateTime = d1.AddSeconds((-window / 2))

    Dim d6 As DateTime = d1.AddHours(2).AddSeconds((2 * window))
    Dim d7 As DateTime = d1.AddHours(2).AddSeconds((-2 * window))
    Dim d8 As DateTime = d1.AddHours(2).AddSeconds((window / 2))
    Dim d9 As DateTime = d1.AddHours(2).AddSeconds((-window / 2))

    Console.WriteLine($"d1 ({d1}) ~= d1 ({d1}): {RoughlyEquals(d1, d1, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d2 ({d2}): {RoughlyEquals(d1, d2, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d3 ({d3}): {RoughlyEquals(d1, d3, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d4 ({d4}): {RoughlyEquals(d1, d4, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d5 ({d5}): {RoughlyEquals(d1, d5, window, freq)}")

    Console.WriteLine($"d1 ({d1}) ~= d6 ({d6}): {RoughlyEquals(d1, d6, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d7 ({d7}): {RoughlyEquals(d1, d7, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d8 ({d8}): {RoughlyEquals(d1, d8, window, freq)}")
    Console.WriteLine($"d1 ({d1}) ~= d9 ({d9}): {RoughlyEquals(d1, d9, window, freq)}")
End Sub
' The example displays output similar to the following:
'    d1 (1/28/2010 9:01:26 PM) ~= d1 (1/28/2010 9:01:26 PM): True
'    d1 (1/28/2010 9:01:26 PM) ~= d2 (1/28/2010 9:01:46 PM): False
'    d1 (1/28/2010 9:01:26 PM) ~= d3 (1/28/2010 9:01:06 PM): False
'    d1 (1/28/2010 9:01:26 PM) ~= d4 (1/28/2010 9:01:31 PM): True
'    d1 (1/28/2010 9:01:26 PM) ~= d5 (1/28/2010 9:01:21 PM): True
'    d1 (1/28/2010 9:01:26 PM) ~= d6 (1/28/2010 11:01:46 PM): False
'    d1 (1/28/2010 9:01:26 PM) ~= d7 (1/28/2010 11:01:06 PM): False
'    d1 (1/28/2010 9:01:26 PM) ~= d8 (1/28/2010 11:01:31 PM): True
'    d1 (1/28/2010 9:01:26 PM) ~= d9 (1/28/2010 11:01:21 PM): True

COM-interop-ÜberlegungenCOM interop considerations

Ein DateTime -Wert, der auf eine COM-Anwendung übertragen wird, und klicken Sie dann zurück an die einer verwalteten Anwendung übertragen wird als Roundtrip bezeichnet.A DateTime value that is transferred to a COM application, then is transferred back to a managed application, is said to round-trip. Allerdings eine DateTime -Wert, der nur eine Uhrzeit angibt, jedoch nicht Round-Trip wie zu erwarten.However, a DateTime value that specifies only a time does not round-trip as you might expect.

Wenn Sie einen Roundtrip nur eine Uhrzeit z.B. 15: 00 Uhr, das letzte Datum und Uhrzeit 30. Dezember 1899 unserer Zeitrechnung istIf you round-trip only a time, such as 3 P.M., the final date and time is December 30, 1899 C.E. 3:00 Uhr, anstelle der 1. Januar 0001 unserer Zeitrechnungat 3:00 P.M., instead of January, 1, 0001 C.E. 3:00 Uhrat 3:00 P.M. Die .NET Framework- und COM-angenommen ein Standarddatum, wenn nur eine Uhrzeit angegeben wird.The .NET Framework and COM assume a default date when only a time is specified. Setzt jedoch voraus im COM-System als Basisdatum 30. Dezember 1899 unserer Zeitrechnung, während .NET Framework eine Basis Datum der 1. Januar 0001 unserer Zeitrechnung annimmt.However, the COM system assumes a base date of December 30, 1899 C.E., while the .NET Framework assumes a base date of January, 1, 0001 C.E.

Wenn nur eine Uhrzeit in .NET Framework an COM übergeben wird, wird spezielle Verarbeitung ausgeführt, der die Zeit in das Format von COM verwendet konvertiertWhen only a time is passed from the .NET Framework to COM, special processing is performed that converts the time to the format used by COM. Wenn nur eine Uhrzeit von COM an .NET Framework übergeben wird, wird keine spezielle Verarbeitung ausgeführt, da, die legitime Datums- und Uhrzeitangaben, die am oder vor dem 30. Dezember 1899 wieder beschädigt würden.When only a time is passed from COM to the .NET Framework, no special processing is performed because that would corrupt legitimate dates and times on or before December 30, 1899. Wenn ein Datum den Roundtrip von COM gestartet wird, behalten die .NET Framework- und COM-das Datum aus.If a date starts its round-trip from COM, the .NET Framework and COM preserve the date.

Das Verhalten der .NET Framework und COM-bedeutet, dass bei Ihrer Anwendung Roundtrips eine DateTime , die nur eine Uhrzeit angibt, die Ihre Anwendung muss daran denken, zu ändern oder zu ignorieren die von der letzten DateTime Objekt.The behavior of the .NET Framework and COM means that if your application round-trips a DateTime that only specifies a time, your application must remember to modify or ignore the erroneous date from the final DateTime object.

Konstruktoren

DateTime(Int64) DateTime(Int64) DateTime(Int64) DateTime(Int64)

Initialisiert eine neue Instanz der DateTime-Struktur mit einer angegebenen Anzahl von Ticks.Initializes a new instance of the DateTime structure to a specified number of ticks.

DateTime(Int64, DateTimeKind) DateTime(Int64, DateTimeKind) DateTime(Int64, DateTimeKind) DateTime(Int64, DateTimeKind)

Initialisiert eine neue Instanz der DateTime-Struktur mit einer angegebenen Anzahl von Ticks und koordinierter Weltzeit (UTC) oder lokaler Zeit.Initializes a new instance of the DateTime structure to a specified number of ticks and to Coordinated Universal Time (UTC) or local time.

DateTime(Int32, Int32, Int32) DateTime(Int32, Int32, Int32) DateTime(Int32, Int32, Int32) DateTime(Int32, Int32, Int32)

Initialisiert eine neue Instanz der DateTime-Struktur mit dem angegebenen Jahr, Monat und Tag.Initializes a new instance of the DateTime structure to the specified year, month, and day.

DateTime(Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Calendar)

Initialisiert eine neue Instanz der DateTime-Struktur mit dem angegebenen Jahr, Monat und Tag für den angegebenen Kalender.Initializes a new instance of the DateTime structure to the specified year, month, and day for the specified calendar.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute und Sekunde.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde und koordinierte Weltzeit (Coordinated Universal Time, UTC) oder Ortszeit.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and Coordinated Universal Time (UTC) or local time.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute und Sekunde für den angegebenen Kalender.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second for the specified calendar.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde und koordinierte Weltzeit (Coordinated Universal Time, UTC) oder Ortszeit.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde für den angegebenen Kalender.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, and millisecond for the specified calendar.

DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind) DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Initialisiert eine neue Instanz der DateTime-Struktur mit den angegebenen Werten für Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde und koordinierte Weltzeit (Coordinated Universal Time, UTC) oder Ortszeit für den angegebenen Kalender.Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, second, millisecond, and Coordinated Universal Time (UTC) or local time for the specified calendar.

Felder

MaxValue MaxValue MaxValue MaxValue

Stellt den größtmöglichen Wert von DateTime dar.Represents the largest possible value of DateTime. Dieses Feld ist schreibgeschützt.This field is read-only.

MinValue MinValue MinValue MinValue

Stellt den kleinstmöglichen Wert von DateTime dar.Represents the smallest possible value of DateTime. Dieses Feld ist schreibgeschützt.This field is read-only.

UnixEpoch UnixEpoch UnixEpoch UnixEpoch

Eigenschaften

Date Date Date Date

Ruft die Datumskomponente dieser Instanz ab.Gets the date component of this instance.

Day Day Day Day

Ruft den Tag des Monats ab, der durch diese Instanz dargestellt wird.Gets the day of the month represented by this instance.

DayOfWeek DayOfWeek DayOfWeek DayOfWeek

Ruft den Wochentag ab, der durch diese Instanz dargestellt wird.Gets the day of the week represented by this instance.

DayOfYear DayOfYear DayOfYear DayOfYear

Ruft den Tag des Jahres ab, der durch diese Instanz dargestellt wird.Gets the day of the year represented by this instance.

Hour Hour Hour Hour

Ruft die Komponente für die Stunden des Datums ab, das durch diese Instanz dargestellt wird.Gets the hour component of the date represented by this instance.

Kind Kind Kind Kind

Ruft einen Wert ab, der angibt, ob die durch diese Instanz dargestellte Zeit auf lokaler Zeit, koordinierter Weltzeit (UTC) oder keinem von beiden basiert.Gets a value that indicates whether the time represented by this instance is based on local time, Coordinated Universal Time (UTC), or neither.

Millisecond Millisecond Millisecond Millisecond

Ruft die Komponente für die Millisekunden des Datums ab, das durch diese Instanz dargestellt wird.Gets the milliseconds component of the date represented by this instance.

Minute Minute Minute Minute

Ruft die Komponente für die Minuten des Datums ab, das durch diese Instanz dargestellt wird.Gets the minute component of the date represented by this instance.

Month Month Month Month

Ruft die Komponente für den Monat des Datums ab, das durch diese Instanz dargestellt wird.Gets the month component of the date represented by this instance.

Now Now Now Now

Ruft ein DateTime-Objekt ab, das auf das aktuelle Datum und die aktuelle Zeit auf dem lokalen Rechner als Ortszeit festgelegt ist.Gets a DateTime object that is set to the current date and time on this computer, expressed as the local time.

Second Second Second Second

Ruft die Komponente für die Sekunden des Datums ab, das durch diese Instanz dargestellt wird.Gets the seconds component of the date represented by this instance.

Ticks Ticks Ticks Ticks

Ruft die Anzahl der Ticks ab, die Datum und Uhrzeit dieser Instanz darstellen.Gets the number of ticks that represent the date and time of this instance.

TimeOfDay TimeOfDay TimeOfDay TimeOfDay

Ruft die Uhrzeit für diese Instanz ab.Gets the time of day for this instance.

Today Today Today Today

Ruft das aktuelle Datum ab.Gets the current date.

UtcNow UtcNow UtcNow UtcNow

Ruft ein DateTime-Objekt ab, das auf die aktuelle Datums- und Uhrzeitangabe auf diesem Rechner als koordinierte Weltzeit (UTC) festgelegt ist.Gets a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC).

Year Year Year Year

Ruft die Komponente für das Jahr des Datums ab, das durch diese Instanz dargestellt wird.Gets the year component of the date represented by this instance.

Methoden

Add(TimeSpan) Add(TimeSpan) Add(TimeSpan) Add(TimeSpan)

Gibt einen neuen DateTime-Wert zurück, der den Wert des angegebenen TimeSpan-Werts zum Wert dieser Instanz addiert.Returns a new DateTime that adds the value of the specified TimeSpan to the value of this instance.

AddDays(Double) AddDays(Double) AddDays(Double) AddDays(Double)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Tagen zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of days to the value of this instance.

AddHours(Double) AddHours(Double) AddHours(Double) AddHours(Double)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Stunden zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of hours to the value of this instance.

AddMilliseconds(Double) AddMilliseconds(Double) AddMilliseconds(Double) AddMilliseconds(Double)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Millisekunden zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of milliseconds to the value of this instance.

AddMinutes(Double) AddMinutes(Double) AddMinutes(Double) AddMinutes(Double)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Minuten zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of minutes to the value of this instance.

AddMonths(Int32) AddMonths(Int32) AddMonths(Int32) AddMonths(Int32)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Monaten zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of months to the value of this instance.

AddSeconds(Double) AddSeconds(Double) AddSeconds(Double) AddSeconds(Double)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Sekunden zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of seconds to the value of this instance.

AddTicks(Int64) AddTicks(Int64) AddTicks(Int64) AddTicks(Int64)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Ticks zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of ticks to the value of this instance.

AddYears(Int32) AddYears(Int32) AddYears(Int32) AddYears(Int32)

Gibt einen neuen DateTime-Wert zurück, der die angegebene Anzahl von Jahren zum Wert dieser Instanz addiert.Returns a new DateTime that adds the specified number of years to the value of this instance.

Compare(DateTime, DateTime) Compare(DateTime, DateTime) Compare(DateTime, DateTime) Compare(DateTime, DateTime)

Vergleicht zwei Instanzen von DateTime und gibt eine ganze Zahl zurück, die angibt, ob die erste Instanz früher oder später als die zweite Instanz ist oder ob sie mit dieser identisch ist.Compares two instances of DateTime and returns an integer that indicates whether the first instance is earlier than, the same as, or later than the second instance.

CompareTo(DateTime) CompareTo(DateTime) CompareTo(DateTime) CompareTo(DateTime)

Vergleicht den Wert dieser Instanz mit einem angegebenen DateTime-Wert und gibt eine Ganzzahl zurück, die angibt, ob diese Instanz vor oder nach dem angegebenen DateTime-Wert liegt oder diesem entspricht.Compares the value of this instance to a specified DateTime value and returns an integer that indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.

CompareTo(Object) CompareTo(Object) CompareTo(Object) CompareTo(Object)

Vergleicht den Wert dieser Instanz mit einem angegebenen Objekt, das einen angegebenen DateTime-Wert enthält, und gibt eine Ganzzahl zurück, die angibt, ob diese Instanz vor oder nach dem angegebenen DateTime-Wert liegt oder diesem entspricht.Compares the value of this instance to a specified object that contains a specified DateTime value, and returns an integer that indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.

DaysInMonth(Int32, Int32) DaysInMonth(Int32, Int32) DaysInMonth(Int32, Int32) DaysInMonth(Int32, Int32)

Gibt die Anzahl der Tage im angegebenen Monat und Jahr zurück.Returns the number of days in the specified month and year.

Equals(DateTime, DateTime) Equals(DateTime, DateTime) Equals(DateTime, DateTime) Equals(DateTime, DateTime)

Gibt einen Wert zurück, der angibt, ob zwei DateTime-Instanzen denselben Datum- und Zeitwert besitzen.Returns a value indicating whether two DateTime instances have the same date and time value.

Equals(DateTime) Equals(DateTime) Equals(DateTime) Equals(DateTime)

Gibt einen Wert zurück, der angibt, ob der Wert dieser Instanz gleich dem Wert der angegebenen DateTime-Instanz ist.Returns a value indicating whether the value of this instance is equal to the value of the specified DateTime instance.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.Returns a value indicating whether this instance is equal to a specified object.

FromBinary(Int64) FromBinary(Int64) FromBinary(Int64) FromBinary(Int64)

Deserialisiert einen 64-Bit-Binärwert und erstellt ein ursprüngliches serialisiertes DateTime-Objekt neu.Deserializes a 64-bit binary value and recreates an original serialized DateTime object.

FromFileTime(Int64) FromFileTime(Int64) FromFileTime(Int64) FromFileTime(Int64)

Konvertiert die angegebene Windows-Dateizeit in eine entsprechende Ortszeit.Converts the specified Windows file time to an equivalent local time.

FromFileTimeUtc(Int64) FromFileTimeUtc(Int64) FromFileTimeUtc(Int64) FromFileTimeUtc(Int64)

Konvertiert die angegebene Windows-Dateizeit in eine entsprechende UTC-Zeit.Converts the specified Windows file time to an equivalent UTC time.

FromOADate(Double) FromOADate(Double) FromOADate(Double) FromOADate(Double)

Gibt eine DateTime zurück, die dem angegebenen Datum für die OLE-Automatisierung entspricht.Returns a DateTime equivalent to the specified OLE Automation Date.

GetDateTimeFormats() GetDateTimeFormats() GetDateTimeFormats() GetDateTimeFormats()

Konvertiert den Wert dieser Instanz in alle Zeichenfolgendarstellungen, die von den Standardformatbezeichnern für Datum und Uhrzeit unterstützt werden.Converts the value of this instance to all the string representations supported by the standard date and time format specifiers.

GetDateTimeFormats(Char) GetDateTimeFormats(Char) GetDateTimeFormats(Char) GetDateTimeFormats(Char)

Konvertiert den Wert dieser Instanz in alle Zeichenfolgendarstellungen, die von den angegebenen Standardformatbezeichnern für Datum und Uhrzeit unterstützt werden.Converts the value of this instance to all the string representations supported by the specified standard date and time format specifier.

GetDateTimeFormats(IFormatProvider) GetDateTimeFormats(IFormatProvider) GetDateTimeFormats(IFormatProvider) GetDateTimeFormats(IFormatProvider)

Konvertiert den Wert dieser Instanz in alle Zeichenfolgendarstellungen, die von den Standardformatbezeichnern für Datum und Uhrzeit und den angegebenen kulturspezifischen Formatierungsinformationen unterstützt werden.Converts the value of this instance to all the string representations supported by the standard date and time format specifiers and the specified culture-specific formatting information.

GetDateTimeFormats(Char, IFormatProvider) GetDateTimeFormats(Char, IFormatProvider) GetDateTimeFormats(Char, IFormatProvider) GetDateTimeFormats(Char, IFormatProvider)

Konvertiert den Wert dieser Instanz in alle Zeichenfolgenentsprechungen, die von dem angegebenen Standardformatbezeichner für Datum und Uhrzeit und den angegebenen kulturspezifischen Formatierungsinformationen unterstützt werden.Converts the value of this instance to all the string representations supported by the specified standard date and time format specifier and culture-specific formatting information.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

GetTypeCode() GetTypeCode() GetTypeCode() GetTypeCode()

Gibt den TypeCode für den Werttyp DateTime zurück.Returns the TypeCode for value type DateTime.

IsDaylightSavingTime() IsDaylightSavingTime() IsDaylightSavingTime() IsDaylightSavingTime()

Gibt an, ob sich diese Instanz von DateTime im Sommerzeitbereich für die aktuelle Zeitzone befindet.Indicates whether this instance of DateTime is within the daylight saving time range for the current time zone.

IsLeapYear(Int32) IsLeapYear(Int32) IsLeapYear(Int32) IsLeapYear(Int32)

Gibt eine Angabe darüber zurück, ob das angegebene Jahr ein Schaltjahr ist.Returns an indication whether the specified year is a leap year.

Parse(String) Parse(String) Parse(String) Parse(String)

Konvertiert die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe anhand der Konventionen für die aktuelle Threadkultur in die entsprechende DateTime.Converts the string representation of a date and time to its DateTime equivalent by using the conventions of the current thread culture.

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Konvertiert die Zeichenfolgendarstellungen einer Datums- und Uhrzeitangabe unter Verwendung der kulturspezifischen Formatierungsinformationen in die entsprechende DateTime.Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information.

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles)

Konvertiert die Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der kulturspezifischen Formatierungsinformationen und eines Formatierungsstil in die entsprechende DateTime.Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende DateTime.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)
ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in die entsprechende DateTime.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match the specified format exactly or an exception is thrown.

ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung des angegebenen Formatarrays, der kulturspezifischen Formatierungsinformationen und des Stils in die DateTime-Entsprechung.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss mindestens einem der angegebenen Formate genau entsprechen. Andernfalls wird eine Ausnahme ausgelöst.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

SpecifyKind(DateTime, DateTimeKind) SpecifyKind(DateTime, DateTimeKind) SpecifyKind(DateTime, DateTimeKind) SpecifyKind(DateTime, DateTimeKind)

Erstellt ein neues DateTime-Objekt, das über die gleiche Anzahl von Ticks wie die angegebene DateTime verfügt, aber entsprechend dem DateTimeKind-Wert in Ortszeit, koordinierter Weltzeit (Coordinated Universal Time, UTC) oder keinem von beiden angegeben ist.Creates a new DateTime object that has the same number of ticks as the specified DateTime, but is designated as either local time, Coordinated Universal Time (UTC), or neither, as indicated by the specified DateTimeKind value.

Subtract(DateTime) Subtract(DateTime) Subtract(DateTime) Subtract(DateTime)

Subtrahiert die angegebene Datums- und Uhrzeitangabe von dieser Instanz.Subtracts the specified date and time from this instance.

Subtract(TimeSpan) Subtract(TimeSpan) Subtract(TimeSpan) Subtract(TimeSpan)

Subtrahiert die angegebene Dauer von dieser Instanz.Subtracts the specified duration from this instance.

ToBinary() ToBinary() ToBinary() ToBinary()

Serialisiert das aktuelle DateTime-Objekt in einen 64-Bit-Binärwert, der dann zum erneuten Erstellen des DateTime-Objekts verwendet werden kann.Serializes the current DateTime object to a 64-bit binary value that subsequently can be used to recreate the DateTime object.

ToFileTime() ToFileTime() ToFileTime() ToFileTime()

Konvertiert den Wert des aktuellen DateTime-Objekts in eine Windows-Dateizeit.Converts the value of the current DateTime object to a Windows file time.

ToFileTimeUtc() ToFileTimeUtc() ToFileTimeUtc() ToFileTimeUtc()

Konvertiert den Wert des aktuellen DateTime-Objekts in eine Windows-Dateizeit.Converts the value of the current DateTime object to a Windows file time.

ToLocalTime() ToLocalTime() ToLocalTime() ToLocalTime()

Konvertiert den Wert des aktuellen DateTime-Objekts in die Ortszeit.Converts the value of the current DateTime object to local time.

ToLongDateString() ToLongDateString() ToLongDateString() ToLongDateString()

Konvertiert den Wert des aktuellen DateTime-Objekts in die entsprechende Zeichenfolgendarstellung im langen Datumsformat.Converts the value of the current DateTime object to its equivalent long date string representation.

ToLongTimeString() ToLongTimeString() ToLongTimeString() ToLongTimeString()

Konvertiert den Wert des aktuellen DateTime-Objekts in die entsprechende Zeichenfolgendarstellung im langen Zeitformat.Converts the value of the current DateTime object to its equivalent long time string representation.

ToOADate() ToOADate() ToOADate() ToOADate()

Konvertiert den Wert dieser Instanz in das entsprechende Datum für OLE-Automatisierung.Converts the value of this instance to the equivalent OLE Automation date.

ToShortDateString() ToShortDateString() ToShortDateString() ToShortDateString()

Konvertiert den Wert des aktuellen DateTime-Objekts in die entsprechende Zeichenfolgendarstellung im kurzen Datumsformat.Converts the value of the current DateTime object to its equivalent short date string representation.

ToShortTimeString() ToShortTimeString() ToShortTimeString() ToShortTimeString()

Konvertiert den Wert des aktuellen DateTime-Objekts in die entsprechende Zeichenfolgendarstellung im kurzen Zeitformat.Converts the value of the current DateTime object to its equivalent short time string representation.

ToString(String, IFormatProvider) ToString(String, IFormatProvider) ToString(String, IFormatProvider) ToString(String, IFormatProvider)

Konvertiert den Wert des aktuellen DateTime-Objekts unter Verwendung des angegebenen Formats sowie der kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.Converts the value of the current DateTime object to its equivalent string representation using the specified format and culture-specific format information.

ToString(String) ToString(String) ToString(String) ToString(String)

Konvertiert den Wert des aktuellen DateTime-Objekts unter Verwendung des angegebenen Formats und der Formatierungskonventionen der aktuellen Kultur in die entsprechende Zeichenfolgendarstellung.Converts the value of the current DateTime object to its equivalent string representation using the specified format and the formatting conventions of the current culture.

ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider)

Konvertiert den Wert des aktuellen DateTime-Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.Converts the value of the current DateTime object to its equivalent string representation using the specified culture-specific format information.

ToString() ToString() ToString() ToString()

Konvertiert den Wert des aktuellen DateTime-Objekts unter Verwendung der Formatierungskonventionen der aktuellen Kultur in die entsprechende Zeichenfolgendarstellung.Converts the value of the current DateTime object to its equivalent string representation using the formatting conventions of the current culture.

ToUniversalTime() ToUniversalTime() ToUniversalTime() ToUniversalTime()

Konvertiert den Wert des aktuellen DateTime-Objekts in koordinierte Weltzeit (UTC).Converts the value of the current DateTime object to Coordinated Universal Time (UTC).

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider) TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)
TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime) TryParse(String, DateTime)

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe in deren DateTime-Entsprechung und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich ausgeführt wurde.Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime) TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Konvertiert die angegebene Zeichenfolgendarstellung einer Datums- und Uhrzeitangabe unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen und des Formatierungsstils in die entsprechende DateTime und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich abgeschlossen wurde.Converts the specified string representation of a date and time to its DateTime equivalent using the specified culture-specific format information and formatting style, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime) TryParse(ReadOnlySpan<Char>, DateTime)
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung der Angaben über Format, kulturabhängige Formatierungsinformationen und Stil in die entsprechende DateTime.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss dem angegebenen Format genau entsprechen.The format of the string representation must match the specified format exactly. Die Methode gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich abgeschlossen wurde.The method returns a value that indicates whether the conversion succeeded.

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Konvertiert die angegebene Zeichenfolgenentsprechung einer Datums- und Uhrzeitangabe unter Verwendung des angegebenen Formatarrays, der kulturspezifischen Formatierungsinformationen und des Stils in die DateTime-Entsprechung.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Das Format der Zeichenfolgendarstellung muss mindestens einem der angegebenen Formate genau entsprechen.The format of the string representation must match at least one of the specified formats exactly. Die Methode gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich abgeschlossen wurde.The method returns a value that indicates whether the conversion succeeded.

Operatoren

Addition(DateTime, TimeSpan) Addition(DateTime, TimeSpan) Addition(DateTime, TimeSpan) Addition(DateTime, TimeSpan)

Addiert ein angegebenes Zeitintervall zu einer Datums- und Uhrzeitangabe und gibt eine neue Datums- und Uhrzeitangabe zurück.Adds a specified time interval to a specified date and time, yielding a new date and time.

Equality(DateTime, DateTime) Equality(DateTime, DateTime) Equality(DateTime, DateTime) Equality(DateTime, DateTime)

Bestimmt, ob zwei angegebene Instanzen von DateTime gleich sind.Determines whether two specified instances of DateTime are equal.

GreaterThan(DateTime, DateTime) GreaterThan(DateTime, DateTime) GreaterThan(DateTime, DateTime) GreaterThan(DateTime, DateTime)

Bestimmt, ob eine angegebene DateTime später als eine andere angegebene DateTime ist.Determines whether one specified DateTime is later than another specified DateTime.

GreaterThanOrEqual(DateTime, DateTime) GreaterThanOrEqual(DateTime, DateTime) GreaterThanOrEqual(DateTime, DateTime) GreaterThanOrEqual(DateTime, DateTime)

Bestimmt, ob eine vorliegende DateTime-Angabe eine Datums- und Uhrzeitangabe darstellt, die gleichzeitig oder später als eine andere vorliegende DateTime-Angabe ist.Determines whether one specified DateTime represents a date and time that is the same as or later than another specified DateTime.

Inequality(DateTime, DateTime) Inequality(DateTime, DateTime) Inequality(DateTime, DateTime) Inequality(DateTime, DateTime)

Bestimmt, ob zwei angegebene Instanzen von DateTime nicht gleich sind.Determines whether two specified instances of DateTime are not equal.

LessThan(DateTime, DateTime) LessThan(DateTime, DateTime) LessThan(DateTime, DateTime) LessThan(DateTime, DateTime)

Bestimmt, ob eine angegebene DateTime früher als eine andere angegebene DateTime ist.Determines whether one specified DateTime is earlier than another specified DateTime.

LessThanOrEqual(DateTime, DateTime) LessThanOrEqual(DateTime, DateTime) LessThanOrEqual(DateTime, DateTime) LessThanOrEqual(DateTime, DateTime)

Bestimmt, ob eine vorliegende DateTime-Angabe eine Datums- und Uhrzeitangabe darstellt, die gleichzeitig oder früher als eine andere vorliegende DateTime-Angabe ist.Determines whether one specified DateTime represents a date and time that is the same as or earlier than another specified DateTime.

Subtraction(DateTime, TimeSpan) Subtraction(DateTime, TimeSpan) Subtraction(DateTime, TimeSpan) Subtraction(DateTime, TimeSpan)

Subtrahiert ein angegebenes Zeitintervall von einer Datums- und Uhrzeitangabe und gibt eine neue Datums- und Uhrzeitangabe zurück.Subtracts a specified time interval from a specified date and time and returns a new date and time.

Subtraction(DateTime, DateTime) Subtraction(DateTime, DateTime) Subtraction(DateTime, DateTime) Subtraction(DateTime, DateTime)

Subtrahiert eine Datums- und Uhrzeitangabe von einer anderen Datums- und Uhrzeitangabe und gibt ein Zeitintervall zurück.Subtracts a specified date and time from another specified date and time and returns a time interval.

Explizite Schnittstellenimplementierungen

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)
IConvertible.GetTypeCode() IConvertible.GetTypeCode() IConvertible.GetTypeCode() IConvertible.GetTypeCode()
IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider) IConvertible.ToBoolean(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider) IConvertible.ToByte(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider) IConvertible.ToChar(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider) IConvertible.ToDateTime(IFormatProvider)

Gibt das aktuelle DateTime-Objekt zurück.Returns the current DateTime object.

IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider) IConvertible.ToDecimal(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider) IConvertible.ToDouble(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider) IConvertible.ToInt16(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider) IConvertible.ToInt32(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider) IConvertible.ToInt64(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider) IConvertible.ToSByte(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider) IConvertible.ToSingle(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider) IConvertible.ToType(Type, IFormatProvider)

Konvertiert das aktuelle DateTime-Objekt in ein Objekt vom angegebenen Typ.Converts the current DateTime object to an object of a specified type.

IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider) IConvertible.ToUInt16(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider) IConvertible.ToUInt32(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider) IConvertible.ToUInt64(IFormatProvider)

Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Bei dem Versuch der Verwendung dieser Methode wird eine InvalidCastException ausgelöst.Attempting to use this method throws an InvalidCastException.

ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext) ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Füllt ein SerializationInfo-Objekt mit den für das Serialisieren des aktuellen DateTime-Objekts erforderlichen Daten.Populates a SerializationInfo object with the data needed to serialize the current DateTime object.

Gilt für:

Threadsicherheit

Alle Member dieses Typs sind threadsicher.All members of this type are thread safe. Mitglieder, die angezeigt werden, so ändern Sie den Zustand der Instanz zurück tatsächlich eine neue Instanz initialisiert wird, mit dem neuen Wert an.Members that appear to modify instance state actually return a new instance initialized with the new value. Wie bei jeder anderen Art werden lesen und Schreiben in eine freigegebene Variable, die eine Instanz dieses Typs enthält durch eine Sperre um Threadsicherheit zu gewährleisten geschützt.As with any other type, reading and writing to a shared variable that contains an instance of this type must be protected by a lock to guarantee thread safety.

Siehe auch