DateTime Yapı

Tanım

Genellikle günün tarih ve saati olarak ifade edilen bir anlık zamanı temsil eder.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
public struct 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
Devralma
DateTime
Öznitelikler
Uygulamalar

Açıklamalar

Önemli

Japonca takvimlerinde dönemler İmparatorluk üzerinde'nın temel alır ve değiştirmek için bu nedenle bekleniyor.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Örneğin, Reiwa dönemi başına 1 Mayıs 2019'olarak işaretlenmiş JapaneseCalendar ve JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Böyle bir değişiklik, dönem bu takvimler kullanan tüm uygulamaları etkiler.Such a change of era affects all applications that use these calendars. Bkz: .NET Japonca takviminde yeni bir dönemi işleme daha fazla bilgi ve uygulamalarınızı etkilenip etkilenmediğini belirlemek için.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Bkz: uygulamanızı Japonca era değiştirmek için hazırlama era değiştirmek için kendi hazırlık emin olmak için Windows sistemlerinde uygulamalarınızı test etme hakkında bilgi.See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. Bkz: dönemlerle çalışma takvimlerle birden çok dönemi destekleyen .NET özellikleri ve birden çok dönemi destekleyen takvimler ile çalışırken en iyi yöntemler.See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

Not

Bazı C# bu makaledeki örneklerde Çalıştır Try.NET satır içi kod Çalıştırıcısı ve oyun alanı.Some C# examples in this article run in the Try.NET inline code runner and playground. Seçin çalıştırma bir etkileşimli penceresinde bir örnek çalıştırmak için düğme.Select the Run button to run an example in an interactive window. Kod yürüttükten sonra değiştirmek ve seçerek değiştirilmiş kodu çalıştırmak çalıştırma yeniden.Once you execute the code, you can modify it and run the modified code by selecting Run again. Değiştirilmiş ya da çalıştırmalarını etkileşimli pencerede kod ya da derleme başarısız olursa, tüm C# Derleyici hata iletilerini etkileşimli pencere görüntüler.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Yerel saat dilimi , Try.NET satır içi kod Çalıştırıcısı ve oyun alanı olduğundan, Eşgüdümlü Evrensel Saat ve UTC.The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. Bu davranışı ve çıktısını gösteren örnekler etkileyebilir DateTime, DateTimeOffset, ve TimeZoneInfo türleri ve üyeleri.This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

Bu makale DateTime türünü kullanan birkaç örnek içerir:This article includes several examples that use the DateTime type:

Başlatma örnekleriInitialization Examples

Nesneleri dize olarak biçimlendirme DateTimeFormatting DateTime objects as strings

Dizeleri DateTime nesne olarak ayrıştırmaParsing strings as DateTime objects

DateTime çözümlemeDateTime resolution

Kültür ve takvimlerCulture and calendars

KalıcılıkPersistence

Bu bölümde DateTime yapısının birçok yaygın kullanımları için konular yer almaktadır:This section contains topics for many common uses of the DateTime struct:

DateTime değer türü, tarihleri ve saatleri 00:00:00 (gece yarısı), Ocak 1, 0001 Anno Domini (ortak dönem) ile 11:59:59 P.M., 31 Aralık 9999 arasında değerler ile temsil eder.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. Gregoryen takviminde.(C.E.) in the Gregorian calendar.

Saat değerleri 100-nanosaniyelik birimi olarak zaman işaretleri olarak ölçülür.Time values are measured in 100-nanosecond units called ticks. Belirli bir tarih 12:00 gece yarısından beri geçen onay işareti sayısıdır, 1 Ocak 0001 M.S.A particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. C.E. GregorianCalendar takviminde.(C.E.) in the GregorianCalendar calendar. Numara, artık saniyeler tarafından eklenecek işaretleri dışlar.The number excludes ticks that would be added by leap seconds. Örneğin, 31241376000000000L 'nin bir Ticks değeri, Ocak 01, 0100 12:00:00 gece yarısından itibaren tarihi temsil eder.For example, a ticks value of 31241376000000000L represents the date Friday, January 01, 0100 12:00:00 midnight. DateTime değeri her zaman açık veya varsayılan bir takvim bağlamında ifade edilir.A DateTime value is always expressed in the context of an explicit or default calendar.

Not

Birkaç dakika veya saniye gibi başka bir zaman aralığına dönüştürmek istediğiniz bir Ticks değeri ile çalışıyorsanız, dönüştürmeyi gerçekleştirmek için TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecondveya TimeSpan.TicksPerMillisecond sabitini kullanmanız gerekir.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. Örneğin, bir DateTime değerinin Second bileşenine, belirtilen sayıda onay işareti ile temsil edilen saniye sayısını eklemek için, dateValue.Second + nTicks/Timespan.TicksPerSecondifadesi kullanabilirsiniz.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.

Bu makaledeki tüm örnek kümesinin kaynağını, Visual Basic C# ya da GitHub 'daki docs deposundan görüntüleyebilirsiniz.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.

Not

Belirli saat dilimlerinde tarih ve saat değerleriyle çalışmak için DateTime yapısına bir alternatif DateTimeOffset yapısıdır.An alternative to the DateTime structure for working with date and time values in particular time zones is the DateTimeOffset structure. DateTimeOffset yapısı Tarih ve saat bilgilerini özel bir DateTime alanına ve bu tarih ile saatin özel bir Int16 alanındaki UTC 'den farklı olduğu dakika sayısına depolar.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. Bu, bir DateTimeOffset değerinin belirli bir saat dilimindeki süreyi yansıtmasını olanaklı hale getirir, ancak DateTime bir değer yalnızca UTC ve yerel saat diliminin saatini kesin bir şekilde yansıtabilir.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. Tarih ve saat değerleriyle çalışırken DateTime yapısının veya DateTimeOffset yapısının ne zaman kullanılacağı hakkında bir tartışma için bkz. DateTime, DateTimeOffset, TimeSpan ve TimeZoneInfo arasında seçim yapma.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.

DateTime nesnesi başlatmaInitializing a DateTime object

Yeni bir DateTime değerine bir ilk değeri birçok farklı yolla atayabilirsiniz:You can assign an initial value to a new DateTime value in many different ways:

  • Bir oluşturucuyu, değerler için bağımsız değişkenler belirttiğiniz yerde veya örtük parametresiz oluşturucuyu kullanarak çağırma.Calling a constructor, either one where you specify arguments for values, or use the implicit parameterless constructor.
  • Bir özelliğin veya yöntemin dönüş değerine DateTime atama.Assigning a DateTime to the return value of a property or method.
  • Dize gösteriminden bir DateTime değeri ayrıştırılıyor.Parsing a DateTime value from its string representation.
  • Bir DateTimebaşlatmak için Visual Basic özgü dil özelliklerini kullanma.Using Visual Basic-specific language features to instantiate a DateTime.

Aşağıdaki kod parçacıkları her birinin örneklerini gösterir:The following code snippets show examples of each:

Oluşturucuları çağırInvoke Constructors

Tarih ve saat değerinin (yıl, ay, gün veya onay işareti sayısı gibi) öğeleri belirten DateTime oluşturucusunun herhangi bir yüklerini çağırabilirsiniz.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). Aşağıdaki kod, yıl, ay, gün, saat, dakika ve saniyeyi belirten DateTime oluşturucusunu kullanarak belirli bir tarih oluşturur.The following code creates a specific date using the DateTime constructor specifying the year, month, day, hour, minute, and second.

[!code-vbSystem.DateTime.Instantiation#1][!code-vbSystem.DateTime.Instantiation#1]

var date1 = new DateTime(2008, 5, 1, 8, 30, 52);
Console.WriteLine(date1);

DateTime başlatılmış bir DateTime, varsayılan değerine bir başlatma istediğinizde, yapının örtük parametresiz oluşturucusunu çağırılır.You invoke the DateTime structure's implicit parameterless constructor when you want a DateTime initialized to its default value. (Bir değer türünün örtük parametresiz oluşturucusu hakkında daha fazla bilgi için bkz. değer türleri.) Bazı derleyiciler Ayrıca bir değeri açıkça atamaya gerek kalmadan bir DateTime değeri bildirmeyi de destekler.(For details on the implicit parameterless constructor of a value type, see Value Types.) Some compilers also support declaring a DateTime value without explicitly assigning a value to it. Açık bir başlatma olmadan bir değer oluşturmak, varsayılan değeri de elde ediyor.Creating a value without an explicit initialization also results in the default value. Aşağıdaki örnek, DateTime örtük olarak parametresiz oluşturucuyu C# ve Visual Basic ve Visual Basic atamasız DateTime bildirimini gösterir.The following example illustrates the DateTime implicit parameterless 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))
var 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));
Hesaplanan değer atamaAssigning a computed value

DateTime nesnesine bir özellik veya yöntem tarafından döndürülen tarih ve saat değeri atayabilirsiniz.You can assign the DateTime object a date and time value returned by a property or method. Aşağıdaki örnekte geçerli tarih ve saat, geçerli Eşgüdümlü Evrensel Saat (UTC) Tarih ve saati ve geçerli tarih üç yeni DateTime değişkenine atanır.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.

[!code-vbSystem.DateTime.Instantiation#3][!code-vbSystem.DateTime.Instantiation#3]

DateTime date1 = DateTime.Now;
DateTime date2 = DateTime.UtcNow;
DateTime date3 = DateTime.Today;
Bir tarih saati temsil eden bir dizeyi ayrıştırmaParsing a string that represents a DateTime

Parse, ParseExact, TryParseve TryParseExact yöntemleri, bir dizeyi eşdeğer tarih ve saat değerine dönüştürür.The Parse, ParseExact, TryParse, and TryParseExact methods all convert a string to its equivalent date and time value. Aşağıdaki örneklerde, bir dizeyi ayrıştırmak ve DateTime bir değere dönüştürmek için Parse ve ParseExact yöntemleri kullanılmaktadır.The following examples use the Parse and ParseExact methods to parse a string and convert it to a DateTime value. İkinci biçim, bir tarih ve saat dize biçiminde temsil eden ıso 8601 standardı tarafından desteklenen bir form kullanır.The second format uses a form supported by the ISO 8601 standard for a representing date and time in string format. Bu standart gösterim genellikle Web hizmetlerindeki tarih bilgilerini aktarmak için kullanılır.This standard representation is often used to transfer date information in web services.

[!code-vbSystem.DateTime.Instantiation#4][!code-vbSystem.DateTime.Instantiation#4]

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

TryParse ve TryParseExact yöntemleri, bir dizenin bir DateTime değerin geçerli bir gösterimi olup olmadığını gösterir ve ise dönüştürmeyi gerçekleştirir.The TryParse and TryParseExact methods indicate whether a string is a valid representation of a DateTime value and, if it is, performs the conversion.

Visual Basic için dile özgü sözdizimiLanguage-specific syntax for Visual Basic

Aşağıdaki Visual Basic ifade yeni bir DateTime değeri başlatır.The following Visual Basic statement initializes a new DateTime value.

[!code-vbSystem.DateTime.Instantiation#2][!code-vbSystem.DateTime.Instantiation#2]

DateTime değerleri ve onların dize temsilleriDateTime values and their string representations

Dahili olarak, tüm DateTime değerleri, 12:00:00 gece yarısından beri geçen süre sonu sayısı (100-nanosaniyelik aralığı) olarak gösterilir, 1 Ocak 0001.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. Gerçek DateTime değeri, görüntülendiğinde bu değerin göründüğü yoldan bağımsızdır.The actual DateTime value is independent of the way in which that value appears when displayed. Bir DateTime değerin görünümü, bir değeri dize gösterimine dönüştüren biçimlendirme işleminin sonucudur.The appearance of a DateTime value is the result of a formatting operation that converts a value to its string representation.

Tarih ve saat değerlerinin görünümü kültür, uluslararası standartlar, uygulama gereksinimleri ve kişisel tercihe bağımlıdır.The appearance of date and time values is dependent on culture, international standards, application requirements, and personal preference. DateTime yapısı, ToStringaşırı yüklemeleri aracılığıyla tarih ve saat değerlerini biçimlendirme esnekliği sunar.The DateTime structure offers flexibility in formatting date and time values through overloads of ToString. Varsayılan DateTime.ToString() yöntemi, geçerli kültürün kısa tarih ve uzun saat deseninin kullanıldığı tarih ve saat değerinin dize gösterimini döndürür.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. Aşağıdaki örnek, varsayılan DateTime.ToString() yöntemini kullanır.The following example uses the default DateTime.ToString() method. Geçerli kültür için kısa tarih ve uzun saat deseninin kullanıldığı tarih ve saati görüntüler.It displays the date and time using the short date and long time pattern for the current culture. En-US kültürü, örneğin çalıştırıldığı bilgisayardaki geçerli kültürdür.The en-US culture is the current culture on the computer on which the example was run.

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

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

Sunucunun istemciden farklı bir kültürde olabileceği Web senaryolarını desteklemek için belirli bir kültürden tarihleri biçimlendirmeniz gerekebilir.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. Belirli bir kültürde kısa tarih ve uzun saat gösterimini oluşturmak için DateTime.ToString(IFormatProvider) yöntemini kullanarak kültürü belirtirsiniz.You specify the culture using the DateTime.ToString(IFormatProvider) method to create the short date and long time representation in a specific culture. Aşağıdaki örnek, fr-FR kültürü için kısa tarih ve uzun saat deseninin kullanıldığı tarih ve saati göstermek için DateTime.ToString(IFormatProvider) yöntemini kullanır.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.

var 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

Diğer uygulamalar, bir tarih için farklı dize temsilleri gerektirebilir.Other applications may require different string representations of a date. DateTime.ToString(String) yöntemi, geçerli kültürün biçimlendirme kurallarını kullanarak bir standart veya özel biçim belirticisi tarafından tanımlanan dize gösterimini döndürür.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. Aşağıdaki örnek, en-US kültürünün tam tarih ve saat modelini, örneğin çalıştırıldığı bilgisayardaki geçerli kültürü göstermek için DateTime.ToString(String) yöntemini kullanır.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.

[!code-csharpSystem.DateTime.Formatting#3][!code-csharpSystem.DateTime.Formatting#3]

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

Son olarak, DateTime.ToString(String, IFormatProvider) yöntemini kullanarak hem kültür hem de biçim belirtebilirsiniz.Finally, you can specify both the culture and the format using the DateTime.ToString(String, IFormatProvider) method. Aşağıdaki örnek, fr-FR kültürü için tam tarih ve saat modelini göstermek üzere DateTime.ToString(String, IFormatProvider) yöntemini kullanır.The following example uses the DateTime.ToString(String, IFormatProvider) method to display the full date and time pattern for the fr-FR culture.

var 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

DateTime.ToString(String) aşırı yüklemesi, diğer biçimleri belirtmek için özel biçim dizesi ile de kullanılabilir.The DateTime.ToString(String) overload can also be used with a custom format string to specify other formats. Aşağıdaki örnek, Web Hizmetleri için genellikle kullanılan ıso 8601 standart biçimi kullanılarak bir dizenin nasıl biçimlendirileceğini gösterir.The following example shows how to format a string using the ISO 8601 standard format often used for web services. ISO 8601 biçiminde karşılık gelen bir standart biçim dizesi yok.The Iso 8601 format does not have a corresponding standard format string.

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

DateTime değerlerini biçimlendirme hakkında daha fazla bilgi için bkz. Standart Tarih ve saat biçimi dizeleri ve özel tarih ve saat biçim dizeleri.For more information about formatting DateTime values, see Standard Date and Time Format Strings and Custom Date and Time Format Strings.

Dizelerdeki tarih saat değerlerini ayrıştırmaParsing DateTime values from strings

Ayrıştırma bir tarih ve saatin dize gösterimini DateTime bir değere dönüştürür.Parsing converts the string representation of a date and time to a DateTime value. Genellikle, tarih ve saat dizelerinin uygulamalarda iki farklı kullanımı vardır:Typically, date and time strings have two different usages in applications:

  • Tarih ve saat birçok form alır ve geçerli kültür ya da belirli bir kültürün kurallarını yansıtır.A date and time takes a variety of forms and reflects the conventions of either the current culture or a specific culture. Örneğin, bir uygulama, geçerli kültürün "12/15/2013" veya "15 Aralık 2013" olarak bir tarih değeri girmesini sağlayan bir kullanıcıya izin verir.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". Geçerli kültürü "15/12/2013" veya "15 Aralık 2013" olarak bir tarih değeri girmek için en GB olan bir kullanıcıya izin verir.It allows a user whose current culture is en-gb to input a date value as "15/12/2013" or "15 December 2013."

  • Tarih ve saat önceden tanımlanmış bir biçimde temsil edilir.A date and time is represented in a predefined format. Örneğin, bir uygulama, uygulamanın çalıştığı kültürden bağımsız olarak bir tarihi "20130103" olarak serileştirir.For example, an application serializes a date as "20130103" independently of the culture on which the app is running. Bir uygulama, tarihin geçerli kültürün kısa tarih biçiminde giriş yapılmasını gerektirebilir.An application may require dates be input in the current culture's short date format.

Bir dizeyi bir kültür tarafından kullanılan ortak tarih ve saat biçimlerinden bir DateTime değere dönüştürmek için Parse veya TryParse yöntemini kullanırsınız.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. Aşağıdaki örnek, farklı kültüre özgü biçimlerdeki Tarih dizelerini bir DateTime değere dönüştürmek için TryParse nasıl kullanabileceğinizi gösterir.The following example shows how you can use TryParse to convert date strings in different culture-specific formats to a DateTime value. Geçerli kültürü Ingilizce (Büyük Britanya) olarak değiştirir ve bir tarih ve saat dizeleri dizisi oluşturmak için GetDateTimeFormats() yöntemini çağırır.It changes the current culture to English (Great Britain) and calls the GetDateTimeFormats() method to generate an array of date and time strings. Sonra dizideki her öğeyi TryParse yöntemine geçirir.It then passes each element in the array to the TryParse method. Örneğin çıktısı, ayrıştırma yönteminin kültüre özgü tarih ve saat dizelerinin her birini başarıyla dönüştürebilmesini göstermektedir.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");

var date1 = new DateTime(2013, 6, 1, 12, 32, 30);
var 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 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

Belirli bir biçim veya biçimle eşleşmesi gereken bir dizeyi DateTime bir değere dönüştürmek için ParseExact ve TryParseExact yöntemlerini kullanın.You use the ParseExact and TryParseExact methods to convert a string that must match a particular format or formats to a DateTime value. Ayrıştırma yöntemine parametre olarak bir veya daha fazla tarih ve saat biçimi dizesi belirtirsiniz.You specify one or more date and time format strings as a parameter to the parsing method. Aşağıdaki örnek, bir "yyyyMMdd" biçiminde veya "HHmmss" biçiminde olması gereken dizeleri DateTime değerlere dönüştürmek için TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) yöntemini kullanır.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.

[!code-csharpSystem.DateTime.Parsing#2][!code-csharpSystem.DateTime.Parsing#2]

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

ParseExact yaygın olarak kullanılan bir dizi, genellikle ıso 8601 standart biçiminde bir Web hizmetinden dize gösterimini dönüştürmektir.One common use for ParseExact is to convert a string representation from a web service, usually in ISO 8601 standard format. Aşağıdaki kod, kullanılacak doğru biçim dizesini gösterir:The following code shows the correct format string to use:

var 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}")

Bir dize ayrıştırılamadıysanız, Parse ve ParseExact yöntemleri bir özel durum oluşturur.If a string cannot be parsed, the Parse and ParseExact methods throw an exception. TryParse ve TryParseExact yöntemleri, dönüştürmenin başarılı veya başarısız olduğunu belirten bir Boolean değeri döndürür.The TryParse and TryParseExact methods return a Boolean value that indicates whether the conversion succeeded or failed. Performansının önemli olduğu senaryolarda TryParse veya TryParseExact yöntemlerini kullanmanız gerekir.You should use the TryParse or TryParseExact methods in scenarios where performance is important. Tarih ve saat dizeleri için ayrıştırma işlemi, yüksek başarısızlık oranına sahiptir ve özel durum işleme pahalıdır.The parsing operation for date and time strings tends to have a high failure rate, and exception handling is expensive. Dizeler kullanıcılara göre giriş yaparsanız veya bilinmeyen bir kaynaktan geliyorsa bu yöntemleri kullanın.Use these methods if strings are input by users or coming from an unknown source.

Tarih ve saat değerlerini ayrıştırma hakkında daha fazla bilgi için bkz. Tarih ve saat dizelerini ayrıştırma.For more information about parsing date and time values, see Parsing Date and Time Strings.

DateTime değerleriDateTime values

DateTime türündeki zaman değerlerinin açıklamaları genellikle Eşgüdümlü Evrensel Saat (UTC) standardı kullanılarak ifade edilir.Descriptions of time values in the DateTime type are often expressed using the Coordinated Universal Time (UTC) standard. Eşgüdümlü Evrensel Saat, Greenwich Ortalama Saati (GMT) için uluslararası olarak tanınan addır.Coordinated Universal Time is the internationally recognized name for Greenwich Mean Time (GMT). Eşgüdümlü Evrensel Saat, sıfır derece boylam, UTC kaynak noktası cinsinden ölçülür.Coordinated Universal Time is the time as measured at zero degrees longitude, the UTC origin point. Gün ışığından yararlanma saati UTC 'ye uygulanamaz.Daylight saving time is not applicable to UTC.

Yerel saat, belirli bir saat dilimine göredir.Local time is relative to a particular time zone. Saat dilimi, saat dilimi farkına göre ilişkilendirilir.A time zone is associated with a time zone offset. Saat dilimi boşluğu, saat diliminin UTC kaynak noktasından saat cinsinden ölçülen uzaklıkdır.A time zone offset is the displacement of the time zone measured in hours from the UTC origin point. Ayrıca, yerel saat isteğe bağlı olarak, bir zaman aralığı ayarlaması ekleyen veya çıkaran gün ışığından yararlanma zamanından etkilenir.In addition, local time is optionally affected by daylight saving time, which adds or subtracts a time interval adjustment. Yerel saat, UTC 'ye saat dilimi göreli değeri eklenerek ve gerekirse yaz saati kaydetme süresi ayarlanarak hesaplanır.Local time is calculated by adding the time zone offset to UTC and adjusting for daylight saving time if necessary. UTC kaynak noktasındaki saat dilimi kayması sıfırdır.The time zone offset at the UTC origin point is zero.

UTC saati, hesaplamalar, karşılaştırmalar ve dosyalardaki tarih ve saati depolamak için uygundur.UTC time is suitable for calculations, comparisons, and storing dates and time in files. Yerel saat, masaüstü uygulamalarının kullanıcı arabirimlerinde görüntülenmek üzere uygundur.Local time is appropriate for display in user interfaces of desktop applications. Saat dilimi kullanan uygulamaların (örneğin birçok Web uygulaması) aynı zamanda birkaç farklı saat dilimiyle çalışması gerekir.Time zone-aware applications (such as many Web applications) also need to work with a number of other time zones.

Bir DateTime nesnesinin Kind özelliği DateTimeKind.Unspecifiedise, temsil edilen zamanın yerel saat, UTC saati veya diğer bir saat dilimiyle bir süre olup olmadığı belirlenmeyecektir.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.

Tarih saat çözümüDateTime resolution

Not

DateTime değerlerinde tarih ve zaman aritmetiğinin yerine geçen süreyi ölçmeye alternatif olarak, Stopwatch sınıfını kullanabilirsiniz.As an alternative to performing date and time arithmetic on DateTime values to measure elapsed time, you can use the Stopwatch class.

Ticks özelliği, tarih ve saat değerlerini saniyenin 1 10-milimetre Onth birimi cinsinden ifade eder.The Ticks property expresses date and time values in units of one ten-millionth of a second. Millisecond özelliği, bir tarih ve saat değerinde saniyenin binde döndürür.The Millisecond property returns the thousandths of a second in a date and time value. Geçen süreyi ölçmek için DateTime.Now özelliği için tekrarlanan çağrıları kullanmak sistem saatine bağlıdır.Using repeated calls to the DateTime.Now property to measure elapsed time is dependent on the system clock. Windows 7 ve Windows 8 sistemlerinde sistem saatinin yaklaşık 15 milisaniyelik çözünürlüğü vardır.The system clock on Windows 7 and Windows 8 systems has a resolution of approximately 15 milliseconds. Bu çözüm, 100 milisaniyeden az olan küçük zaman aralıklarını etkiler.This resolution affects small time intervals less than 100 milliseconds.

Aşağıdaki örnek, sistem saatinin çözümlenme geçerli tarih ve saat değerlerinin bağımlılığını gösterir.The following example illustrates the dependence of current date and time values on the resolution of the system clock. Örnekte, bir dış döngü 20 kez yinelenir ve bir iç döngü dış döngüyü geciktirmek için kullanılır.In the example, an outer loop repeats 20 times, and an inner loop serves to delay the outer loop. Dış döngü sayacının değeri 10 ise, Thread.Sleep yöntemine yapılan bir çağrı beş milisaniyelik bir gecikme getirir.If the value of the outer loop counter is 10, a call to the Thread.Sleep method introduces a five-millisecond delay. Aşağıdaki örnek, yalnızca Thread.Sleepçağrısından sonra DateTime.Now.Milliseconds özelliği değişikliklerinin döndürdüğü milisaniye sayısını gösterir.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 işlemleriDateTime operations

Add veya Subtractgibi DateTime yapısını kullanan bir hesaplama, yapının değerini değiştirmez.A calculation using a DateTime structure, such as Add or Subtract, does not modify the value of the structure. Bunun yerine, hesaplama değeri hesaplamanın sonucu olan yeni bir DateTime yapısı döndürür.Instead, the calculation returns a new DateTime structure whose value is the result of the calculation.

Saat dilimleriyle (UTC ve yerel saat arasında veya bir saat dilimi ile diğeri arasında) dönüştürme işlemleri, gün ışığından yararlanma süresini hesaba götürür, ancak aritmetik ve karşılaştırma işlemleri değildir.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.

DateTime yapısı, bir saat diliminden diğerine dönüştürme için sınırlı destek sağlar.The DateTime structure itself offers limited support for converting from one time zone to another. UTC 'yi yerel saate dönüştürmek için ToLocalTime yöntemini kullanabilir veya yerel saatten UTC 'ye dönüştürmek için ToUniversalTime yöntemini kullanabilirsiniz.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. Ancak, TimeZoneInfo sınıfında bir saat dilimi dönüştürme yöntemlerinin eksiksiz bir kümesi vardır.However, a full set of time zone conversion methods is available in the TimeZoneInfo class. Bu yöntemleri kullanarak dünyanın saat dilimlerinin herhangi birindeki zaman dilimini başka bir saat dilimiyle saate dönüştürürsünüz.You convert the time in any one of the world's time zones to the time in any other time zone using these methods.

DateTime nesnelerinin hesaplamaları ve karşılaştırmaları, yalnızca nesneler aynı saat dilimindeki zamanları temsil ediyorsa anlamlıdır.Calculations and comparisons of DateTime objects are meaningful only if the objects represent times in the same time zone. Bir DateTime değerinin saat dilimini temsil etmek için bir TimeZoneInfo nesnesi kullanabilirsiniz, ancak ikisi de gevşek olarak bağlanmış olabilir.You can use a TimeZoneInfo object to represent a DateTime value's time zone, although the two are loosely coupled. DateTime nesnesi, bu tarih ve saat değerinin saat dilimini temsil eden bir nesne döndüren bir özelliğe sahip değildir.A DateTime object does not have a property that returns an object that represents that date and time value's time zone. Kind özelliği, bir DateTime UTC, yerel saat veya belirtilmemiş olduğunu gösterir.The Kind property indicates if a DateTime represents UTC, local time, or is unspecified. Saat dilimi ile uyumlu bir uygulamada, bir DateTime nesnesinin oluşturulduğu saat dilimini belirleyebilmek için bazı dış mekanizmaya güvenmelidir.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. Hem DateTime değerini hem de DateTime değerin saat dilimini temsil eden TimeZoneInfo nesnesini sarmalayan bir yapı kullanabilirsiniz.You could use a structure that wraps both the DateTime value and the TimeZoneInfo object that represents the DateTime value's time zone. Hesaplamalar ve DateTime değerleriyle karşılaştırmalarda UTC kullanımıyla ilgili ayrıntılar için, bkz. Tarih ve saatlerle aritmetik Işlemler gerçekleştirme.For details on using UTC in calculations and comparisons with DateTime values, see Performing Arithmetic Operations with Dates and Times.

Her bir DateTime üyesi, işlemini gerçekleştirmek için örtük olarak Gregoryen takvimini kullanır.Each DateTime member implicitly uses the Gregorian calendar to perform its operation. Özel durumlar, dolaylı olarak bir takvim belirten yöntemlerdir.Exceptions are methods that implicitly specify a calendar. Bu, bir takvim belirten oluşturucular ve System.Globalization.DateTimeFormatInfogibi IFormatProvidertüretilmiş bir parametreye sahip yöntemler içerir.These include constructors that specify a calendar, and methods with a parameter derived from IFormatProvider, such as System.Globalization.DateTimeFormatInfo.

DateTime türünün üyelerine yönelik işlemler, artık yıllar ve bir ay içindeki gün sayısı gibi hesap ayrıntılarına sahiptir.Operations by members of the DateTime type take into account details such as leap years and the number of days in a month.

Tarih saat değerleri ve takvimleriDateTime values and calendars

.NET Framework sınıf kitaplığı, hepsi Calendar sınıfından türetilen bir dizi takvim sınıfı içerir.The .NET Framework Class Library includes a number of calendar classes, all of which are derived from the Calendar class. Bunlar:They are:

Önemli

Japonca takvimlerinde dönemler İmparatorluk üzerinde'nın temel alır ve değiştirmek için bu nedenle bekleniyor.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Örneğin, Reiwa dönemi başına 1 Mayıs 2019'olarak işaretlenmiş JapaneseCalendar ve JapaneseLunisolarCalendar.For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Böyle bir değişiklik, dönem bu takvimler kullanan tüm uygulamaları etkiler.Such a change of era affects all applications that use these calendars. Bkz: .NET Japonca takviminde yeni bir dönemi işleme daha fazla bilgi ve uygulamalarınızı etkilenip etkilenmediğini belirlemek için.See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Bkz: uygulamanızı Japonca era değiştirmek için hazırlama era değiştirmek için kendi hazırlık emin olmak için Windows sistemlerinde uygulamalarınızı test etme hakkında bilgi.See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. Bkz: dönemlerle çalışma takvimlerle birden çok dönemi destekleyen .NET özellikleri ve birden çok dönemi destekleyen takvimler ile çalışırken en iyi yöntemler.See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

Her kültür, salt okunurdur CultureInfo.Calendar özelliği tarafından tanımlanan varsayılan bir takvimi kullanır.Each culture uses a default calendar defined by its read-only CultureInfo.Calendar property. Her kültür, salt okunurdur CultureInfo.OptionalCalendars özelliği tarafından tanımlanan bir veya daha fazla takvimi destekleyebilir.Each culture may support one or more calendars defined by its read-only CultureInfo.OptionalCalendars property. Belirli bir CultureInfo nesnesi tarafından şu anda kullanılan takvim, DateTimeFormatInfo.Calendar özelliği tarafından tanımlanır.The calendar currently used by a specific CultureInfo object is defined by its DateTimeFormatInfo.Calendar property. CultureInfo.OptionalCalendars dizisinde bulunan takvimlerden biri olmalıdır.It must be one of the calendars found in the CultureInfo.OptionalCalendars array.

Bir kültürün geçerli takvimi, söz konusu kültür için tüm biçimlendirme işlemlerinde kullanılır.A culture's current calendar is used in all formatting operations for that culture. Örneğin, Tay Budist kültürün varsayılan takvimi, ThaiBuddhistCalendar sınıfı tarafından temsil edilen Tay dili Budist dönem takvimidir.For example, the default calendar of the Thai Buddhist culture is the Thai Buddhist Era calendar, which is represented by the ThaiBuddhistCalendar class. Tay Budist kültürünü temsil eden bir CultureInfo nesnesi tarih ve saat biçimlendirme işleminde kullanıldığında, Tay Budist Era takvimi varsayılan olarak kullanılır.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. Gregoryen takvimi yalnızca, aşağıdaki örnekte gösterildiği gibi, kültürün DateTimeFormatInfo.Calendar özelliği değiştirilirse kullanılır:The Gregorian calendar is used only if the culture's DateTimeFormatInfo.Calendar property is changed, as the following example shows:

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

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

Bir kültürün geçerli takvimi, aşağıdaki örnekte gösterildiği gibi, söz konusu kültür için tüm ayrıştırma işlemlerinde de kullanılır.A culture's current calendar is also used in all parsing operations for that culture, as the following example shows.

[!code-csharpSystem.DateTime.Calendar#2][!code-csharpSystem.DateTime.Calendar#2]

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

Bir calendar parametresi içeren bir DateTime oluşturucusunu çağırarak ve bu takvimi temsil eden bir Calendar nesnesi geçirerek belirli bir takvimdeki tarih ve saat öğelerini (yıl, ay ve gün sayısı) kullanarak bir DateTime değeri örnekleyebilirsiniz.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. Aşağıdaki örnek, ThaiBuddhistCalendar takvimindeki tarih ve saat öğelerini kullanır.The following example uses the date and time elements from the ThaiBuddhistCalendar calendar.

[!code-csharpSystem.DateTime.Calendar#3][!code-csharpSystem.DateTime.Calendar#3]

Dim thTH As New CultureInfo("th-TH")
Dim dat As New DateTime(2559, 5, 28, thTH.DateTimeFormat.Calendar)
Console.WriteLine($"Thai Buddhist Era date: {dat.ToString("d", thTH)}")
Console.WriteLine($"Gregorian date:   {dat:d}")
' The example displays the following output:
'       Thai Buddhist Era Date:  28/5/2559
'       Gregorian Date:     28/05/2016

calendar parametresi içermeyen DateTime oluşturucular, tarih ve saat öğelerinin Gregoryen takvimdeki birimler olarak ifade edildiği varsayılır.DateTime constructors that do not include a calendar parameter assume that the date and time elements are expressed as units in the Gregorian calendar.

Diğer tüm DateTime özellikleri ve yöntemleri Gregoryen takvimini kullanır.All other DateTime properties and methods use the Gregorian calendar. Örneğin, DateTime.Year özelliği, Gregoryen takvimdeki yılı döndürür ve DateTime.IsLeapYear(Int32) yöntemi year parametresinin Gregoryen takvimdeki bir yıl olduğunu varsayar.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. Gregoryen takvimini kullanan her DateTime üyesinin, belirli bir takvimi kullanan Calendar sınıfının karşılık gelen bir üyesi vardır.Each DateTime member that uses the Gregorian calendar has a corresponding member of the Calendar class that uses a specific calendar. Örneğin, Calendar.GetYear yöntemi belirli bir takvimdeki yılı döndürür ve Calendar.IsLeapYear yöntemi year parametresini belirli bir takvimdeki yıl numarası olarak yorumlar.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. Aşağıdaki örnek hem DateTime hem de ThaiBuddhistCalendar sınıfının karşılık gelen üyelerini kullanır.The following example uses both the DateTime and the corresponding members of the ThaiBuddhistCalendar class.

[!code-csharpSystem.DateTime.Calendar#4][!code-csharpSystem.DateTime.Calendar#4]

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: {dat.ToString("d", thTH)}")
Console.WriteLine($"Year: {cal.GetYear(dat)}")
Console.WriteLine($"Leap year: {cal.IsLeapYear(cal.GetYear(dat))}")
Console.WriteLine()

Console.WriteLine("Using the Gregorian calendar:")
Console.WriteLine($"Date: {dat:d}")
Console.WriteLine($"Year: {dat.Year}")
Console.WriteLine($"Leap year: {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

DateTime yapısı, Gregoryen takvimdeki haftanın gününü döndüren bir DayOfWeek özelliği içerir.The DateTime structure includes a DayOfWeek property that returns the day of the week in the Gregorian calendar. Yılın hafta numarasını almanıza izin veren bir üye içermez.It does not include a member that allows you to retrieve the week number of the year. Yılın haftasını almak için, tek bir takvimin Calendar.GetWeekOfYear yöntemini çağırın.To retrieve the week of the year, call the individual calendar's Calendar.GetWeekOfYear method. Aşağıdaki örnek, bir gösterim sağlar.The following example provides an illustration.

[!code-csharpSystem.DateTime.Calendar#5][!code-csharpSystem.DateTime.Calendar#5]

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: {dat.ToString("d", thTH)}")
Console.WriteLine($"Day of Week: {thCalendar.GetDayOfWeek(dat)}")
Console.WriteLine($"Week of year: {thCalendar.GetWeekOfYear(dat, CalendarWeekRule.FirstDay, DayOfWeek.Sunday)}")
Console.WriteLine()

Dim greg As Calendar = New 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, 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

Tarihler ve takvimler hakkında daha fazla bilgi için bkz. takvimler Ile çalışma.For more information on dates and calendars, see Working with Calendars.

Kalıcı tarih saat değerleriPersisting DateTime values

DateTime değerleri dört şekilde kalıcı hale getirebilirsiniz:You can persist DateTime values in four ways:

DateTime değerlerini geri yükleyen yordamın veri kaybetmediğinden veya hangi tekniğin ne olursa olsun bir özel durum oluşturduğunuzdan emin olmanız gerekir.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 değerler gidiş dönüş olmalıdır.DateTime values should round-trip. Diğer bir deyişle, özgün değer ve geri yüklenen değer aynı olmalıdır.That is, the original value and the restored value should be the same. Özgün DateTime değeri tek bir kez gösteriyorsa, geri yüklendiğinde aynı anda aynı süreyi tanımlamalıdır.And if the original DateTime value represents a single instant of time, it should identify the same moment of time when it's restored.

Değerleri dizeler olarak kalıcı hale getirmePersisting values as strings

Dizeler olarak kalıcı olan DateTime değerlerini başarıyla geri yüklemek için şu kurallara uyun:To successfully restore DateTime values that are persisted as strings, follow these rules:

  • Dizeyi kalıcı hale geldiğinde geri yüklerken kültüre özgü biçimlendirme ile aynı varsayımlar yapın.Make the same assumptions about culture-specific formatting when you restore the string as when you persisted it. Geçerli kültürün kaydedildiği sistem kültüründen farklı olduğu bir sistemde bir dizenin geri yüklenebildiğinden emin olmak için, sabit kültürün kurallarını kullanarak dizeyi kaydetmek için ToString aşırı yüklemeyi çağırın.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. Sabit kültürün kurallarını kullanarak dizeyi geri yüklemek için Parse(String, IFormatProvider, DateTimeStyles) veya TryParse(String, IFormatProvider, DateTimeStyles, DateTime) aşırı yüklemeyi çağırın.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. Geçerli iş parçacığı kültürünün kurallarını kullanan ToString(), Parse(String)veya TryParse(String, DateTime) aşırı yüklerini hiçbir şekilde kullanmayın.Never use the ToString(), Parse(String), or TryParse(String, DateTime) overloads, which use the conventions of the current thread culture.

  • Tarih bir süre içinde temsil ediyorsa, farklı bir saat diliminde bile geri yüklendiği zaman aynı anda temsil ettiğinden emin olun.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. DateTime değerini kaydedilmeden Eşgüdümlü Evrensel Saat (UTC) olarak dönüştürün.Convert the DateTime value to Coordinated Universal Time (UTC) before saving it. Ayrıca değeri saat dilimi bilgileriyle birlikte seri hale getirebilirsiniz.You can also serialize the value along with time zone information. Bu yaklaşım hakkında daha fazla bilgi için bkz. TarihSaat ve saat dilimi verilerini serileştirme.For more information about this approach, see Serializing DateTime and time zone data.

Değerleri dize olarak DateTime kalıcı hale geldiğinde yapılan en yaygın hata, varsayılan veya geçerli kültürün biçimlendirme kurallarına bağlıdır.The most common error made when persisting DateTime values as strings is to rely on the formatting conventions of the default or current culture. Geçerli kültür dizeleri kaydederken ve geri yüklenirken farklı olduğunda sorunlar oluşur.Problems arise if the current culture is different when saving and restoring the strings. Aşağıdaki örnekte bu sorunlar gösterilmektedir.The following example illustrates these problems. Geçerli kültürün biçimlendirme kurallarını kullanarak beş tarihi kaydeder ve bu örnekte Ingilizce (Birleşik Devletler) bulunur.It saves five dates using the formatting conventions of the current culture, which in this case is English (United States). Farklı bir kültürün biçimlendirme kurallarını kullanarak tarihleri geri yükler, bu durumda Ingilizce (Büyük Britanya).It restores the dates using the formatting conventions of a different culture, which in this case is English (Great Britain). İki kültürde biçimlendirme kuralları farklı olduğundan, tarihlerden ikisi geri yüklenemez ve kalan üç Tarih yanlış yorumlanır.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. Ayrıca, özgün tarih ve saat değerleri zaman içinde tek bir kez temsil ediyorsa, saat dilimi bilgisi kaybolduğu için geri yükleme süreleri yanlış olur.Also, if the original date and time values represent single moments in time, the restored times are incorrect because time zone information is lost.

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

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...

Değerleri başarıyla DateTime döndürmek için şu adımları izleyin:To round-trip DateTime values successfully, follow these steps:

  1. Değerler tek bir süre temsil ediyorsa, ToUniversalTime yöntemini çağırarak yerel saatten UTC 'ye dönüştürün.If the values represent single moments of time, convert them from the local time to UTC by calling the ToUniversalTime method.
  2. ToString(String, IFormatProvider) veya String.Format(IFormatProvider, String, Object[]) aşırı yüklemeyi çağırarak tarihleri dize temsillerine dönüştürün.Convert the dates to their string representations by calling the ToString(String, IFormatProvider) or String.Format(IFormatProvider, String, Object[]) overload. provider bağımsız değişkeni olarak CultureInfo.InvariantCulture belirterek, sabit kültürün biçimlendirme kurallarını kullanın.Use the formatting conventions of the invariant culture by specifying CultureInfo.InvariantCulture as the provider argument. Değerin "O" veya "R" standart biçim dizesini kullanarak gidiş dönüş olması gerektiğini belirtin.Specify that the value should round-trip by using the "O" or "R" standard format string.

Kalıcı DateTime değerlerini veri kaybı olmadan geri yüklemek için şu adımları izleyin:To restore the persisted DateTime values without data loss, follow these steps:

  1. ParseExact veya TryParseExact aşırı yüklemeyi çağırarak verileri ayrıştırın.Parse the data by calling the ParseExact or TryParseExact overload. provider bağımsız değişkeni olarak CultureInfo.InvariantCulture belirtin ve dönüştürme sırasında format bağımsız değişkeni için kullandığınız standart biçim dizesini kullanın.Specify CultureInfo.InvariantCulture as the provider argument, and use the same standard format string you used for the format argument during conversion. DateTimeStyles.RoundtripKind değerini styles bağımsız değişkenine ekleyin.Include the DateTimeStyles.RoundtripKind value in the styles argument.
  2. DateTime değerler zaman içinde tek bir kez temsil ediyorsa, ayrıştırılmış tarihi UTC 'den yerel saate dönüştürmek için ToLocalTime yöntemini çağırın.If the DateTime values represent single moments in time, call the ToLocalTime method to convert the parsed date from UTC to local time.

Aşağıdaki örnek, kaydedilen ve geri yüklenen DateTime değerlerinin, kaynak ve hedef sistemlerin sistem, kültür veya saat diliminden bağımsız olarak aynı anda aynı anda temsil ettiğinden emin olmak için, sabit kültür ve "O" standart biçim dizesini kullanır.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.

[!code-csharpSystem.DateTime.Persistence#2][!code-csharpSystem.DateTime.Persistence#2]

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...
Değerleri tamsayılar olarak kalıcı hale getirmePersisting values as integers

Bir tarih ve saati, bir dizi onay işareti temsil eden Int64 bir değer olarak kalıcı hale getirebilirsiniz.You can persist a date and time as an Int64 value that represents a number of ticks. Bu durumda, DateTime değerlerinin kalıcı ve geri yüklendiği sistemlerin kültürünü dikkate almanız gerekmez.In this case, you don't have to consider the culture of the systems the DateTime values are persisted and restored on.

DateTime bir değeri tamsayı olarak kalıcı hale getirmek için:To persist a DateTime value as an integer:

  • DateTime değerler zaman içinde tek bir süre temsil ediyorsa, ToUniversalTime yöntemini çağırarak bunları UTC 'ye dönüştürün.If the DateTime values represent single moments in time, convert them to UTC by calling the ToUniversalTime method.
  • Ticks özelliğinden DateTime değeri ile temsil edilen onay işareti sayısını alır.Retrieve the number of ticks represented by the DateTime value from its Ticks property.

Bir tamsayı olarak kalıcı olan bir DateTime değerini geri yüklemek için:To restore a DateTime value that has been persisted as an integer:

  1. Int64 değerini DateTime(Int64) oluşturucusuna geçirerek yeni bir DateTime nesnesi örneği oluşturun.Instantiate a new DateTime object by passing the Int64 value to the DateTime(Int64) constructor.
  2. DateTime değeri tek bir anda temsil ediyorsa, ToLocalTime yöntemini çağırarak UTC 'den yerel saate dönüştürün.If the DateTime value represents a single moment in time, convert it from UTC to the local time by calling the ToLocalTime method.

Aşağıdaki örnek ABD Pasifik saati dilimindeki bir sistemde tamsayılar olarak bir dizi DateTime değeri devam ettirir.The following example persists an array of DateTime values as integers on a system in the U.S. Pacific Time zone. Bunu UTC bölgesindeki bir sisteme geri yükler.It restores it on a system in the UTC zone. Tamsayıları içeren dosya, hemen takip eden Int64 değerlerinin toplam sayısını belirten bir Int32 değeri içerir.The file that contains the integers includes an Int32 value that indicates the total number of Int64 values that immediately follow it.

[!code-csharpSystem.DateTime.Persistence#3][!code-csharpSystem.DateTime.Persistence#3]

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...

DateTime değerlerini serileştirmeSerializing DateTime values

DateTime değerleri bir akışa veya dosyaya serileştirme yoluyla kalıcı hale getirebilirsiniz ve sonra seri durumundan çıkarma aracılığıyla geri yükleyebilirsiniz.You can persist DateTime values through serialization to a stream or file, and then restore them through deserialization. DateTime veriler, belirtilen bazı nesne biçimlerinde serileştirilir.DateTime data is serialized in some specified object format. Nesneler, serisi kaldırıldığında geri yüklenir.The objects are restored when they are deserialized. XmlSerializer veya BinaryFormattergibi bir biçimlendirici veya serileştirici, serileştirme ve seri durumundan çıkarma sürecini işler.A formatter or serializer, such as XmlSerializer or BinaryFormatter, handles the process of serialization and deserialization. Serileştirme ve .NET Framework tarafından desteklenen serileştirme türleri hakkında daha fazla bilgi için bkz. serileştirme.For more information about serialization and the types of serialization supported by the .NET Framework, see Serialization.

Aşağıdaki örnek, DateTime değerlerini seri hale getirmek ve seri durumdan çıkarmak için XmlSerializer sınıfını kullanır.The following example uses the XmlSerializer class to serialize and deserialize DateTime values. Değerler, yirmi birinci yüzyılda bulunan tüm yıl günlerini temsil eder.The values represent all leap year days in the twenty-first century. Çıktı, geçerli kültürü Ingilizce (Büyük Britanya) olan bir sistemde çalıştırıldığında sonucu temsil eder.The output represents the result if the example is run on a system whose current culture is English (Great Britain). DateTime nesnenin kendisini seri durumdan çıkardığınızı, kodun tarih ve saat biçimlerinde kültürel farklılıklarını işlemek zorunda olmaması gerekir.Because you've deserialized the DateTime object itself, the code doesn't have to handle cultural differences in date and time formats.

[!code-csharpSystem.DateTime.Persistence#4][!code-csharpSystem.DateTime.Persistence#4]

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

Önceki örnekte zaman bilgileri yoktur.The previous example doesn't include time information. Bir DateTime değeri zaman içinde bir kez temsil ediyorsa ve yerel saat olarak ifade ediyorsa, ToUniversalTime metodunu çağırarak serileştirilmek üzere yerel saatten UTC 'ye dönüştürün.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. Seri durumdan çıktıktan sonra, ToLocalTime yöntemini çağırarak UTC 'den yerel saate dönüştürün.After you deserialize it, convert it from UTC to local time by calling the ToLocalTime method. Aşağıdaki örnek, ABD Pasifik standart saat dilimindeki bir sistemde DateTime verileri seri hale getirmek ve ABD Orta Standart bölgesindeki bir sistemde serisini kaldırmak için BinaryFormatter sınıfını kullanır.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.

[!code-csharpSystem.DateTime.Persistence#5][!code-csharpSystem.DateTime.Persistence#5]

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...

Tarih saat ve saat dilimi verilerini seri hale getirmeSerializing DateTime and time zone data

Önceki örneklerin hepsi DateTime değerlerinin yerel zamanlar olarak ifade edildiği varsayılır.The previous examples all assumed that DateTime values are expressed as local times. Kod, değerleri UTC ve yerel saat arasında, kaynak ve hedef sistemlerde aynı anda yansıtacak şekilde dönüştürüyordu.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 değerleri, yerel ve UTC dışında bir zaman diliminde zaman içinde geçen süreyi de yansıtmaktadır.DateTime values may also reflect moments in time in a time zone other than local and UTC. DateTime yapısı saat dilimi duyarlı olmadığından, hem DateTime değerini hem de kendi saat dilimini temsil eden TimeZoneInfo nesnesini serileştirmek zorunda olursunuz.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. Alanları hem DateTime değerini hem de onun saat dilimini içeren bir tür oluşturun.Create a type whose fields include both the DateTime value and its time zone. Aşağıdaki örnek bir DateWithTimeZone yapısını tanımlar.The following example defines a DateWithTimeZone structure.

[!code-csharpSystem.DateTime.Persistence#6][!code-csharpSystem.DateTime.Persistence#6]

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
            tz = If(timeZone, TimeZoneInfo.Local)
        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

Önemli

DateWithTimeZone yapısı, bir dizi DateWithTimeZone nesneyi serileştirmek ve serisini kaldırmak için sonraki iki örnekte kullanılır.The DateWithTimeZone structure is used in the next two examples, which serialize and deserialize an array of DateWithTimeZone objects. Bu makaledeki tüm örnek kümesinin kaynağını, Visual Basic C# ya da GitHub 'daki docs deposundan görüntüleyebilirsiniz.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.

DateWithTimeZone yapısını kullanarak tarih ve saati saat dilimi bilgileriyle birlikte kalıcı hale getirebilirsiniz.By using the DateWithTimeZone structure, you can then persist date and time along with time zone information. Aşağıdaki örnek, bir dizi DateWithTimeZone nesnesini seri hale getirmek için BinaryFormatter sınıfını kullanır.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")) };
    var fs = new FileStream(@".\Schedule.bin", FileMode.Create);
    var 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

Aşağıdaki örnek daha sonra, serisini kaldırmak için BinaryFormatter.Deserialize yöntemini çağırır.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;
    }

    var 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 ve TimeSpan karşılaştırmasıDateTime vs. TimeSpan

DateTime ve TimeSpan değer türleri, bir DateTime bir zaman aralığını temsil eden bir bir TimeSpan anında temsil ettiğinden farklılık gösterir.The DateTime and TimeSpan value types differ in that a DateTime represents an instant in time whereas a TimeSpan represents a time interval. Arasındaki zaman aralığını temsil eden bir TimeSpan nesnesi elde etmek için bir DateTime örneğini diğerinden çıkarabilirsiniz.You can subtract one instance of DateTime from another to obtain a TimeSpan object that represents the time interval between them. Ya da gelecekteki bir tarihi temsil eden bir DateTime değeri elde etmek için geçerli DateTime bir pozitif TimeSpan ekleyebilirsiniz.Or you could add a positive TimeSpan to the current DateTime to obtain a DateTime value that represents a future date.

DateTime nesnesinden bir zaman aralığı ekleyebilir veya çıkarabilirsiniz.You can add or subtract a time interval from a DateTime object. Zaman aralıkları negatif veya pozitif olabilir ve sayaç sayısı, saniyeler veya TimeSpan nesnesi gibi birimlerde ifade edilebilir.Time intervals can be negative or positive, and they can be expressed in units such as ticks, seconds, or as a TimeSpan object.

Tolerans dahilinde eşitlik karşılaştırmasıComparing for equality within tolerance

DateTime değerleri için eşitlik karşılaştırmaları kesin.Equality comparisons for DateTime values are exact. Bu, iki değerin eşit kabul edilecek sayıda onay işareti olarak ifade edilmesi gerektiği anlamına gelir.That means two values must be expressed as the same number of ticks to be considered equal. Bu duyarlık genellikle pek çok uygulama için gereksizdir, hatta hatalı olur.That precision is often unnecessary or even incorrect for many applications. Genellikle DateTime nesnelerinin kabaca eşitolup olmadığını test etmek istersiniz.Often, you want to test if DateTime objects are roughly equal.

Aşağıdaki örnek, kabaca eşdeğer DateTime değerlerinin nasıl karşılaştırılacağını gösterir.The following example demonstrates how to compare roughly equivalent DateTime values. Eşit olduğunda küçük bir fark boşluğu kabul eder.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 birlikte çalışabilirlik değerlendirmeleriCOM interop considerations

Bir COM uygulamasına aktarılan ve sonra yönetilen bir uygulamaya aktarılan bir DateTime değeri, gidiş dönüş olarak kabul edilir.A DateTime value that is transferred to a COM application, then is transferred back to a managed application, is said to round-trip. Ancak, yalnızca bir saati belirten DateTime bir değer, bekleolabileceğiniz gibi gidiş dönüş yapmaz.However, a DateTime value that specifies only a time does not round-trip as you might expect.

Yalnızca 3 P.M. gibi bir kez gidiş dönüş yaparsanız, son tarih ve saat 30 Aralık 1899 ' dir C.E.If you round-trip only a time, such as 3 P.M., the final date and time is December 30, 1899 C.E. Ocak, 1, 0001 C.E. yerine 3:00 P.M.at 3:00 P.M., instead of January, 1, 0001 C.E. 3:00 saatat 3:00 P.M. .NET Framework ve COM, yalnızca bir saat belirtildiğinde varsayılan tarihi varsayar.The .NET Framework and COM assume a default date when only a time is specified. Ancak, COM sistemi 30 Aralık 1899 ' un temel tarihini varsayar, .NET Framework Ocak, 1, 0001 C.E. temel tarihini varsayar.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.

.NET Framework COM 'a yalnızca bir zaman geçirildiğinde, saati COM tarafından kullanılan biçime dönüştüren özel işlem gerçekleştirilir.When 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. COM 'dan .NET Framework yalnızca bir zaman geçirildiğinde, bu durum 30 Aralık 1899 ' de veya daha önce geçerli tarih ve saatleri bozacağından özel bir işlem yapılmaz.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. Bir tarih, COM 'tan gidiş gelişini başlıyorsa, .NET Framework ve COM tarihi korur.If a date starts its round-trip from COM, the .NET Framework and COM preserve the date.

.NET Framework ve COM ' un davranışı, uygulamanız yalnızca bir kez bir süre belirten bir DateTime yuvarlayıp, uygulamanızın son DateTime nesnesinden hatalı tarihi değiştirmeyi veya yoksaymayı unutması gerektiğini gösterir.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.

Oluşturucular

DateTime(Int32, Int32, Int32)

DateTime yapısının belirtilen yıl, ay ve güne ait yeni bir örneğini başlatır.Initializes a new instance of the DateTime structure to the specified year, month, and day.

DateTime(Int32, Int32, Int32, Calendar)

Belirtilen takvim için belirtilen yıl, ay ve güne DateTime yapısının yeni bir örneğini başlatır.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 yapısının yeni bir örneğini belirtilen yıl, ay, gün, saat, dakika ve saniye olarak başlatır.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, Calendar)

Belirtilen takvim için DateTime yapısının yeni bir örneğini belirtilen yıl, ay, gün, saat, dakika ve saniye olarak başlatır.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, DateTimeKind)

DateTime yapısının yeni bir örneğini belirtilen yıl, ay, gün, saat, dakika, saniye ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat olarak başlatır.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, Int32)

Belirtilen yıl, ay, gün, saat, dakika, saniye ve milisaniyeye DateTime yapısının yeni bir örneğini başlatır.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, Calendar)

Belirtilen takvim için belirtilen yıl, ay, gün, saat, dakika, saniye ve milisaniyeye DateTime yapısının yeni bir örneğini başlatır.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)

Belirtilen takvim için belirtilen yıl, ay, gün, saat, dakika, saniye, milisaniye ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat olarak DateTime yapısının yeni bir örneğini başlatır.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.

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

DateTime yapısının yeni bir örneğini belirtilen yıl, ay, gün, saat, dakika, saniye, milisaniye ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat olarak başlatır.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(Int64)

DateTime yapısının yeni bir örneğini belirtilen sayıda onay işareti olarak başlatır.Initializes a new instance of the DateTime structure to a specified number of ticks.

DateTime(Int64, DateTimeKind)

DateTime yapısının yeni bir örneğini belirtilen sayıda onay işareti ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat olarak başlatır.Initializes a new instance of the DateTime structure to a specified number of ticks and to Coordinated Universal Time (UTC) or local time.

Alanlar

MaxValue

DateTimeen büyük olası değeri temsil eder.Represents the largest possible value of DateTime. Bu alan salt okunur durumdadır.This field is read-only.

MinValue

DateTimeen küçük olası değeri temsil eder.Represents the smallest possible value of DateTime. Bu alan salt okunur durumdadır.This field is read-only.

UnixEpoch

Bu sabitin değeri, Gregoryen takviminde 00:00:00.0000000 UTC, 1 Ocak 1970 ile eşdeğerdir.The value of this constant is equivalent to 00:00:00.0000000 UTC, January 1, 1970, in the Gregorian calendar. UnixEpoch, Unix zamanının 0 ' a eşit olduğu zaman noktasını tanımlar.UnixEpoch defines the point in time when Unix time is equal to 0.

Özellikler

Date

Bu örneğin tarih bileşenini alır.Gets the date component of this instance.

Day

Bu örnekle temsil edilen ayın gününü alır.Gets the day of the month represented by this instance.

DayOfWeek

Bu örnekle temsil edilen haftanın gününü alır.Gets the day of the week represented by this instance.

DayOfYear

Bu örnekle temsil edilen yılın gününü alır.Gets the day of the year represented by this instance.

Hour

Bu örnekle temsil edilen tarihin saat bileşenini alır.Gets the hour component of the date represented by this instance.

Kind

Bu örnek tarafından temsil edilen zamanın yerel saat, Eşgüdümlü Evrensel Saat (UTC) tabanlı olup olmadığını veya hiçbirini temel aldığını gösteren bir değer alır.Gets a value that indicates whether the time represented by this instance is based on local time, Coordinated Universal Time (UTC), or neither.

Millisecond

Bu örnekle temsil edilen tarihin milisaniye bileşenini alır.Gets the milliseconds component of the date represented by this instance.

Minute

Bu örnekle temsil edilen tarihin dakika bileşenini alır.Gets the minute component of the date represented by this instance.

Month

Bu örnekle temsil edilen tarihin ay bileşenini alır.Gets the month component of the date represented by this instance.

Now

Bu bilgisayarda yerel saat olarak ifade edilen geçerli tarih ve saate ayarlanmış bir DateTime nesnesi alır.Gets a DateTime object that is set to the current date and time on this computer, expressed as the local time.

Second

Bu örnekle temsil edilen tarihin saniye bileşenini alır.Gets the seconds component of the date represented by this instance.

Ticks

Bu örneğin tarih ve saatini temsil eden onay işareti sayısını alır.Gets the number of ticks that represent the date and time of this instance.

TimeOfDay

Bu örnek için günün saatini alır.Gets the time of day for this instance.

Today

Geçerli tarihi alır.Gets the current date.

UtcNow

Bu bilgisayarda, Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen geçerli tarih ve saate ayarlanmış bir DateTime nesnesi alır.Gets a DateTime object that is set to the current date and time on this computer, expressed as the Coordinated Universal Time (UTC).

Year

Bu örnekle temsil edilen tarihin yıl bileşenini alır.Gets the year component of the date represented by this instance.

Yöntemler

Add(TimeSpan)

Belirtilen TimeSpan değerini bu örneğin değerine ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the value of the specified TimeSpan to the value of this instance.

AddDays(Double)

Bu örneğin değerine belirtilen gün sayısını ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of days to the value of this instance.

AddHours(Double)

Bu örneğin değerine belirtilen sayıda saat ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of hours to the value of this instance.

AddMilliseconds(Double)

Bu örneğin değerine belirtilen milisaniye sayısını ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of milliseconds to the value of this instance.

AddMinutes(Double)

Bu örneğin değerine belirtilen dakika sayısını ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of minutes to the value of this instance.

AddMonths(Int32)

Bu örneğin değerine belirtilen sayıda ay ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of months to the value of this instance.

AddSeconds(Double)

Bu örneğin değerine belirtilen saniye sayısını ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of seconds to the value of this instance.

AddTicks(Int64)

Bu örneğin değerine belirtilen sayıda onay işareti ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of ticks to the value of this instance.

AddYears(Int32)

Bu örneğin değerine belirtilen yıl sayısını ekleyen yeni bir DateTime döndürür.Returns a new DateTime that adds the specified number of years to the value of this instance.

Compare(DateTime, DateTime)

İki DateTime örneğini karşılaştırır ve ilk Örneğin ikinci örnekten, ile aynı veya ondan daha eski olduğunu gösteren bir tamsayı döndürür.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)

Bu örneğin değerini belirtilen bir DateTime değeriyle karşılaştırır ve bu örneğin, belirtilen DateTime değerinden daha önce, ile aynı veya ondan daha eski olduğunu gösteren bir tamsayı döndürür.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)

Bu örneğin değerini belirtilen bir DateTime değerini içeren belirtilen bir nesne ile karşılaştırır ve bu örneğin, belirtilen DateTime değerinden daha eski olduğunu belirten bir tamsayı döndürür.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)

Belirtilen ay ve yılda gün sayısını döndürür.Returns the number of days in the specified month and year.

Equals(DateTime)

Bu örneğin değerinin belirtilen DateTime örneğinin değerine eşit olup olmadığını gösteren bir değer döndürür.Returns a value indicating whether the value of this instance is equal to the value of the specified DateTime instance.

Equals(DateTime, DateTime)

İki DateTime örneğinin aynı tarih ve saat değerine sahip olup olmadığını gösteren bir değer döndürür.Returns a value indicating whether two DateTime instances have the same date and time value.

Equals(Object)

Bu örneğin, belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür.Returns a value indicating whether this instance is equal to a specified object.

FromBinary(Int64)

64 bitlik bir ikili değeri seri hale getirir ve özgün serileştirilmiş DateTime nesnesini yeniden oluşturur.Deserializes a 64-bit binary value and recreates an original serialized DateTime object.

FromFileTime(Int64)

Belirtilen Windows Dosya saatini eşdeğer bir yerel saate dönüştürür.Converts the specified Windows file time to an equivalent local time.

FromFileTimeUtc(Int64)

Belirtilen Windows dosyası saatini denk UTC zamanına dönüştürür.Converts the specified Windows file time to an equivalent UTC time.

FromOADate(Double)

Belirtilen OLE Otomasyon tarihine DateTime eşdeğerini döndürür.Returns a DateTime equivalent to the specified OLE Automation Date.

GetDateTimeFormats()

Bu örneğin değerini standart tarih ve saat biçimi belirticileri tarafından desteklenen tüm dize temsillerine dönüştürür.Converts the value of this instance to all the string representations supported by the standard date and time format specifiers.

GetDateTimeFormats(Char)

Bu örneğin değerini, belirtilen standart tarih ve saat biçimi belirticisi tarafından desteklenen tüm dize temsillerine dönüştürür.Converts the value of this instance to all the string representations supported by the specified standard date and time format specifier.

GetDateTimeFormats(Char, IFormatProvider)

Bu örneğin değerini, belirtilen standart tarih ve saat biçimi belirticisi ve kültüre özgü biçimlendirme bilgileri tarafından desteklenen tüm dize temsillerine dönüştürür.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.

GetDateTimeFormats(IFormatProvider)

Bu örneğin değerini standart tarih ve saat biçimi belirticileri tarafından desteklenen tüm dize temsillerine ve belirtilen kültüre özgü biçimlendirme bilgilerine dönüştürür.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.

GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.Returns the hash code for this instance.

GetTypeCode()

Değer türü DateTimeiçin TypeCode döndürür.Returns the TypeCode for value type DateTime.

IsDaylightSavingTime()

Bu DateTime örneğinin geçerli saat dilimi için gün ışığından yararlanma zaman aralığı içinde olup olmadığını gösterir.Indicates whether this instance of DateTime is within the daylight saving time range for the current time zone.

IsLeapYear(Int32)

Belirtilen yılın, artık yıl olup olmadığını belirten bir gösterge döndürür.Returns an indication whether the specified year is a leap year.

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Bir tarih ve saatin dize gösterimini içeren bir bellek aralığını kültüre özgü biçim bilgilerini ve bir biçimlendirme stilini kullanarak DateTime eşdeğerine dönüştürür.Converts a memory span that contains string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

Parse(String)

Geçerli iş parçacığı kültürünün kurallarını kullanarak tarih ve saatin dize temsilini DateTime eşdeğerine dönüştürür.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)

Bir tarih ve saatin dize gösterimini kültüre özgü biçim bilgilerini kullanarak eşdeğer DateTime eşdeğerine dönüştürür.Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information.

Parse(String, IFormatProvider, DateTimeStyles)

Bir tarih ve saatin dize gösterimini, kültüre özgü biçim bilgilerini ve bir biçimlendirme stilini kullanarak DateTime eşdeğerine dönüştürür.Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen Aralık gösterimini, belirtilen biçim, kültüre özgü biçim bilgileri ve stil kullanarak DateTime eşdeğerine dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Bir tarih ve saatin belirtilen Aralık temsilini, belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak DateTime eşdeğerine dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

ParseExact(String, String, IFormatProvider)

Tarih ve saatin belirtilen dize temsilini, belirtilen biçim ve kültüre özgü biçim bilgilerini kullanarak eşdeğer DateTime eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir.The format of the string representation must match the specified format exactly.

ParseExact(String, String, IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen dize temsilini, belirtilen biçim, kültüre özel biçim bilgileri ve stil kullanarak DateTime eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Tarih ve saatin belirtilen dize temsilini, belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak DateTime eşdeğerine dönüştürür.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. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

SpecifyKind(DateTime, DateTimeKind)

Belirtilen DateTimeaynı sayıda işaret sayısına sahip olan, ancak yerel saat, Eşgüdümlü Evrensel Saat (UTC) veya hiçbiri olarak belirtilen DateTimeKind değeri ile belirtilen yeni bir DateTime nesnesi oluşturur.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)

Bu örneğin değerinden belirtilen tarih ve saati çıkaran yeni bir DateTime döndürür.Returns a new DateTime that subtracts the specified date and time from the value of this instance.

Subtract(TimeSpan)

Bu örneğin değerinden belirtilen süreyi çıkaran yeni bir DateTime döndürür.Returns a new DateTime that subtracts the specified duration from the value of this instance.

ToBinary()

Geçerli DateTime nesnesini, daha sonra DateTime nesnesini yeniden oluşturmak için kullanılabilecek 64 bitlik bir ikili değere seri hale getirir.Serializes the current DateTime object to a 64-bit binary value that subsequently can be used to recreate the DateTime object.

ToFileTime()

Geçerli DateTime nesnesinin değerini bir Windows dosya zamanına dönüştürür.Converts the value of the current DateTime object to a Windows file time.

ToFileTimeUtc()

Geçerli DateTime nesnesinin değerini bir Windows dosya zamanına dönüştürür.Converts the value of the current DateTime object to a Windows file time.

ToLocalTime()

Geçerli DateTime nesnesinin değerini yerel saate dönüştürür.Converts the value of the current DateTime object to local time.

ToLongDateString()

Geçerli DateTime nesnesinin değerini, eşdeğer uzun tarih dize gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent long date string representation.

ToLongTimeString()

Geçerli DateTime nesnesinin değerini, eşdeğer uzun zaman dizesi gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent long time string representation.

ToOADate()

Bu örneğin değerini denk OLE Otomasyon tarihine dönüştürür.Converts the value of this instance to the equivalent OLE Automation date.

ToShortDateString()

Geçerli DateTime nesnesinin değerini eşdeğer kısa tarih dizesi gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent short date string representation.

ToShortTimeString()

Geçerli DateTime nesnesinin değerini, eşdeğer kısa saat dize gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent short time string representation.

ToString()

Geçerli DateTime nesnesinin değerini, geçerli kültürün biçimlendirme kurallarını kullanarak eşdeğer dize gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent string representation using the formatting conventions of the current culture.

ToString(IFormatProvider)

Geçerli DateTime nesnesinin değerini, belirtilen kültüre özgü biçim bilgilerini kullanarak eşdeğer dize gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent string representation using the specified culture-specific format information.

ToString(String)

Geçerli DateTime nesnesinin değerini, geçerli kültürün biçimlendirme kurallarını ve belirtilen biçimi kullanarak eşdeğer dize gösterimine dönüştürür.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(String, IFormatProvider)

Geçerli DateTime nesnesinin değerini, belirtilen biçimi ve kültüre özgü biçim bilgilerini kullanarak eşdeğer dize gösterimine dönüştürür.Converts the value of the current DateTime object to its equivalent string representation using the specified format and culture-specific format information.

ToUniversalTime()

Geçerli DateTime nesnesinin değerini Eşgüdümlü Evrensel Saat (UTC) olarak dönüştürür.Converts the value of the current DateTime object to Coordinated Universal Time (UTC).

TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Geçerli tarih saat örneğinin değerini, belirtilen karakter aralığına biçimlendirmeye çalışır.Tries to format the value of the current datetime instance into the provided span of characters.

TryParse(ReadOnlySpan<Char>, DateTime)

Tarih ve saatin belirtilen karakter yayılımını DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Bir tarih ve saatin span gösterimini, belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.Converts the span 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(String, DateTime)

Tarih ve saatin belirtilen dize temsilini DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.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)

Bir tarih ve saatin belirtilen dize temsilini, belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.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.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Tarih ve saatin belirtilen Aralık gösterimini, belirtilen biçim, kültüre özgü biçim bilgileri ve stil kullanarak DateTime eşdeğerine dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir.The format of the string representation must match the specified format exactly. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.The method returns a value that indicates whether the conversion succeeded.

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

Tarih ve saatin belirtilen karakter yayılımını DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.Converts the specified char span of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

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

Tarih ve saatin belirtilen dize temsilini, belirtilen biçim, kültüre özel biçim bilgileri ve stil kullanarak DateTime eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir.The format of the string representation must match the specified format exactly. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.The method returns a value that indicates whether the conversion succeeded.

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

Tarih ve saatin belirtilen dize temsilini, belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak DateTime eşdeğerine dönüştürür.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. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir.The format of the string representation must match at least one of the specified formats exactly. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.The method returns a value that indicates whether the conversion succeeded.

İşleçler

Addition(DateTime, TimeSpan)

Belirtilen bir zaman aralığını belirli bir tarih ve saate ekleyerek yeni bir tarih ve saat sağlar.Adds a specified time interval to a specified date and time, yielding a new date and time.

Equality(DateTime, DateTime)

Belirtilen iki DateTime örneğinin eşit olup olmadığını belirler.Determines whether two specified instances of DateTime are equal.

GreaterThan(DateTime, DateTime)

Belirtilen DateTime belirtilen başka bir DateTimedaha sonra olup olmadığını belirler.Determines whether one specified DateTime is later than another specified DateTime.

GreaterThanOrEqual(DateTime, DateTime)

Belirtilen bir DateTime, belirtilen başka bir DateTimeaynı veya sonraki bir tarihle aynı tarih ve saati temsil edip etmediğini belirler.Determines whether one specified DateTime represents a date and time that is the same as or later than another specified DateTime.

Inequality(DateTime, DateTime)

Belirtilen iki DateTime örneğinin eşit olup olmadığını belirler.Determines whether two specified instances of DateTime are not equal.

LessThan(DateTime, DateTime)

Belirtilen DateTime belirtilen başka bir DateTimedaha önce olup olmadığını belirler.Determines whether one specified DateTime is earlier than another specified DateTime.

LessThanOrEqual(DateTime, DateTime)

Belirtilen bir DateTime, belirtilen başka bir DateTimeaynı veya daha önceki bir tarih ve saati temsil edip etmediğini belirler.Determines whether one specified DateTime represents a date and time that is the same as or earlier than another specified DateTime.

Subtraction(DateTime, DateTime)

Belirtilen bir tarih ve saati, belirtilen başka bir tarih ve saatten çıkartır ve bir zaman aralığı döndürür.Subtracts a specified date and time from another specified date and time and returns a time interval.

Subtraction(DateTime, TimeSpan)

Belirtilen bir zaman aralığını belirtilen bir tarih ve saatten çıkarır ve yeni bir tarih ve saat döndürür.Subtracts a specified time interval from a specified date and time and returns a new date and time.

Belirtik Arabirim Kullanımları

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

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToChar(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToDateTime(IFormatProvider)

Geçerli DateTime nesnesini döndürür.Returns the current DateTime object.

IConvertible.ToDecimal(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt32(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToInt64(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToSByte(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToSingle(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToType(Type, IFormatProvider)

Geçerli DateTime nesnesini belirtilen türdeki bir nesneye dönüştürür.Converts the current DateTime object to an object of a specified type.

IConvertible.ToUInt16(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToUInt32(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

IConvertible.ToUInt64(IFormatProvider)

Bu dönüşüm desteklenmiyor.This conversion is not supported. Bu yöntemi kullanma girişimi bir InvalidCastExceptionoluşturur.Attempting to use this method throws an InvalidCastException.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo nesnesini, geçerli DateTime nesnesini seri hale getirmek için gereken verilerle doldurur.Populates a SerializationInfo object with the data needed to serialize the current DateTime object.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu türün tüm üyeleri iş parçacığı güvenlidir.All members of this type are thread safe. Örneğin durumunu değiştirmek için görüntülenen üyeler, gerçekte yeni değer ile başlatılan yeni bir örneği döndürür.Members that appear to modify instance state actually return a new instance initialized with the new value. Diğer türlerde olduğu gibi, bu türün örneğini içeren paylaşılan değişkenini okuma ve yazma, iş parçacığı güvenliğini sağlamak için bir kilit tarafından korunmalıdır.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.

Ayrıca bkz.