Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

DateTime Yapısı

 

Anlık, genellikle bir tarih ve saati olarak ifade edilen zaman temsil eder.

Bu tür için .NET Framework kaynak koda göz atmak için bkz: Reference Source.

Ad alanı:   System
Derleme:  mscorlib (mscorlib.dll içinde)

[SerializableAttribute]
public struct DateTime : IComparable, IFormattable, IConvertible, 
	ISerializable, IComparable<DateTime>, IEquatable<DateTime>

AdıAçıklama
System_CAPS_pubmethodDateTime(Int32, Int32, Int32)

Yeni bir örneğini başlatır DateTime belirtilen yıl, ay ve gün yapısı.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Calendar)

Yeni bir örneğini başlatır DateTime belirtilen yıl, ay ve gün belirtilen takvim için yapısı.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32)

Yeni bir örneğini başlatır DateTime yapısına belirtilen yıl, ay, gün, saat, dakika ve saniye.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Yeni bir örneğini başlatır DateTime belirtilen yıl, ay, gün, saat, dakika ve saniye için belirtilen takvim yapısına.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Yeni bir örneğini başlatır DateTime yapısı için belirtilen yıl, ay, gün, saat, dakika, saniye ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Yeni bir örneğini başlatır DateTime belirtilen yıl, ay, gün, saat, dakika, saniye ve milisaniye yapısı.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)

Yeni bir örneğini başlatır DateTime yapısına belirtilen yıl, ay, gün, saat, dakika, saniye ve milisaniye belirtilen takvim için.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)

Yeni bir örneğini başlatır DateTime belirtilen yıl, ay, gün, saat, dakika, saniye, milisaniye ve Eşgüdümlü Evrensel Saat (UTC) veya belirtilen takvim için yerel saate yapısı.

System_CAPS_pubmethodDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)

Yeni bir örneğini başlatır DateTime yapısında belirtilen yıl, ay, gün, saat, dakika, saniye, milisaniye ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat.

System_CAPS_pubmethodDateTime(Int64)

Yeni bir örneğini başlatır DateTime ticks belirtilen sayıda yapısı.

System_CAPS_pubmethodDateTime(Int64, DateTimeKind)

Yeni bir örneğini başlatır DateTime yapısı ticks belirtilen sayıda ve Eşgüdümlü Evrensel Saat (UTC) veya yerel saat.

AdıAçıklama
System_CAPS_pubpropertyDate

Bu örnek tarih bileşenini alır.

System_CAPS_pubpropertyDay

Bu örnek tarafından temsil edilen ayın gününü alır.

System_CAPS_pubpropertyDayOfWeek

Bu örnek tarafından temsil edilen haftanın gününü alır.

System_CAPS_pubpropertyDayOfYear

Bu örnek tarafından temsil edilen yılın günü alır.

System_CAPS_pubpropertyHour

Bu örnek tarafından temsil edilen tarih saat bileşenini alır.

System_CAPS_pubpropertyKind

Bu örnek tarafından temsil edilen zaman yerel saat, Eşgüdümlü Evrensel Saat (UTC) ve bunların hiçbiri göre gösteren bir değer alır.

System_CAPS_pubpropertyMillisecond

Bu örnek tarafından temsil edilen tarih milisaniye bileşeninin alır.

System_CAPS_pubpropertyMinute

Bu örnek tarafından temsil edilen tarih dakika bileşenini alır.

System_CAPS_pubpropertyMonth

Bu örnek tarafından temsil edilen tarih ay bileşenini alır.

System_CAPS_pubpropertySystem_CAPS_staticNow

Alır bir DateTime Geçerli tarih ve saat bu bilgisayarda yerel saat olarak ifade edilen ayarlanmış nesnesi.

System_CAPS_pubpropertySecond

Tarihin saniye bileşenini bu örneği tarafından temsil edilen alır.

System_CAPS_pubpropertyTicks

Tarihi temsil eden ticks sayısını ve bu örneğinin saati alır.

System_CAPS_pubpropertyTimeOfDay

Bu örnek için günün saatini alır.

System_CAPS_pubpropertySystem_CAPS_staticToday

Geçerli tarihi alır.

System_CAPS_pubpropertySystem_CAPS_staticUtcNow

Alır bir DateTime Geçerli tarih ve saati Eşgüdümlü Evrensel Saat (UTC) olarak ifade edilen, bu bilgisayarda ayarlanmış nesnesi.

System_CAPS_pubpropertyYear

Bu örnek tarafından temsil edilen tarihin Yıl bileşenini alır.

AdıAçıklama
System_CAPS_pubmethodAdd(TimeSpan)

Yeni bir döndürür DateTime belirtilen değeri ekler TimeSpan bu örneğinin değeri.

System_CAPS_pubmethodAddDays(Double)

Yeni bir döndürür DateTime belirli gün sayısı değeri olarak bu örneği ekler.

System_CAPS_pubmethodAddHours(Double)

Yeni bir döndürür DateTime belirtilen sayıda saat değeri olarak bu örneği ekler.

System_CAPS_pubmethodAddMilliseconds(Double)

Yeni bir döndürür DateTime değeri bu örnek olarak, belirtilen milisaniye sayısı ekler.

System_CAPS_pubmethodAddMinutes(Double)

Yeni bir döndürür DateTime belirtilen dakika sayısı bu örneğin değerine ekler.

System_CAPS_pubmethodAddMonths(Int32)

Yeni bir döndürür DateTime değeri bu örnek olarak, belirtilen sayıda ay ekler.

System_CAPS_pubmethodAddSeconds(Double)

Yeni bir döndürür DateTime değeri bu örnek olarak, belirtilen sayıda saniye ekler.

System_CAPS_pubmethodAddTicks(Int64)

Yeni bir döndürür DateTime değeri bu örnek olarak, belirtilen sayısı ekler.

System_CAPS_pubmethodAddYears(Int32)

Yeni bir döndürür DateTime değeri bu örnek olarak, belirtilen yıl sayısı ekler.

System_CAPS_pubmethodSystem_CAPS_staticCompare(DateTime, DateTime)

İki örneği karşılaştırır DateTime ve ilk örnek olarak veya daha sonraki ikinci örneği, aynı önceki olup olmadığını belirten bir tamsayı döndürür.

System_CAPS_pubmethodCompareTo(DateTime)

Bu örneğin belirtilen değeri karşılaştırır DateTime değeri ve bu örnek, veya olarak belirtilenden daha sonra aynı önceki olup olmadığını belirten bir tamsayı döndürür DateTime değeri.

System_CAPS_pubmethodCompareTo(Object)

Bu örnek belirtilen bir içeren belirtilen nesne değerini karşılaştırır DateTime değeri ve bu örnek, veya olarak belirtilenden daha sonra aynı önceki olup olmadığını belirten bir tamsayı döndürür DateTime değeri.

System_CAPS_pubmethodSystem_CAPS_staticDaysInMonth(Int32, Int32)

Belirtilen ay ve yıl gün sayısını döndürür.

System_CAPS_pubmethodEquals(DateTime)

Bu örneğin değerini belirtilen değerine eşit olup olmadığını belirten bir değer döndürür DateTime örneği.

System_CAPS_pubmethodSystem_CAPS_staticEquals(DateTime, DateTime)

Belirten bir değer döndürür iki olup olmadığını DateTime örneklerine sahip aynı tarih ve saat değeri.

System_CAPS_pubmethodEquals(Object)

Bu örnek belirtilen bir nesneye eşit olup olmadığını belirten bir değer döndürür.(ValueType.Equals(Object) geçersiz kılar.)

System_CAPS_pubmethodSystem_CAPS_staticFromBinary(Int64)

Serileştirilmiş özgün yeniden oluşturur ve 64-bit ikili değer çıkarır DateTime nesne.

System_CAPS_pubmethodSystem_CAPS_staticFromFileTime(Int64)

Belirtilen Windows dosya zamanı eşdeğer bir yerel saate dönüştürür.

System_CAPS_pubmethodSystem_CAPS_staticFromFileTimeUtc(Int64)

Belirtilen Windows dosya zamanı eşdeğer bir UTC saati için dönüştürür.

System_CAPS_pubmethodSystem_CAPS_staticFromOADate(Double)

Döndürür bir DateTime belirtilen OLE Otomasyon tarihi eşdeğerdir.

System_CAPS_pubmethodGetDateTimeFormats()

Bu örnekteki değerin standart tarih ve saat biçim tanımlayıcılarının tarafından desteklenen tüm dize gösterimleri dönüştürür.

System_CAPS_pubmethodGetDateTimeFormats(Char)

Bu örneğin değerini belirtilen standart tarih ve saat biçimi Belirleyicisi tarafından desteklenen tüm dize gösterimleri dönüştürür.

System_CAPS_pubmethodGetDateTimeFormats(Char, IFormatProvider)

Bu örneğin değerini belirtilen standart tarih ve saat biçimi Belirleyicisi ve kültüre özgü biçimlendirme bilgileri tarafından desteklenen tüm dize gösterimleri dönüştürür.

System_CAPS_pubmethodGetDateTimeFormats(IFormatProvider)

Bu örnekteki değerin standart tarih ve saat biçim tanımlayıcılarının ve belirtilen kültüre özgü biçimlendirme bilgileri tarafından desteklenen tüm dize gösterimleri dönüştürür.

System_CAPS_pubmethodGetHashCode()

Bu örneğe ilişkin karma kodu döndürür.(ValueType.GetHashCode() geçersiz kılar.)

System_CAPS_pubmethodGetType()

Alır Type Geçerli örneğin.(Object kaynağından devralındı.)

System_CAPS_pubmethodGetTypeCode()

Döndürür TypeCode değer türü DateTime.

System_CAPS_pubmethodIsDaylightSavingTime()

Belirtir olup olmadığını Bu örneği DateTime Geçerli saat dilimi yaz saati aralığı içinde değil.

System_CAPS_pubmethodSystem_CAPS_staticIsLeapYear(Int32)

Belirtilen yıl artık yıl olup göstergesidir döndürür.

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

Bir tarih ve saat için dize gösterimini dönüştürür kendi DateTime eşdeğer.

System_CAPS_pubmethodSystem_CAPS_staticParse(String, IFormatProvider)

Bir tarih ve saat için dize gösterimini dönüştürür kendi DateTime kültüre özgü biçim bilgilerini kullanarak eşdeğer.

System_CAPS_pubmethodSystem_CAPS_staticParse(String, IFormatProvider, DateTimeStyles)

Bir tarih ve saat için dize gösterimini dönüştürür kendi DateTime Stil biçimlendirme ve kültüre özgü biçim bilgilerini kullanarak eşdeğer.

System_CAPS_pubmethodSystem_CAPS_staticParseExact(String, String, IFormatProvider)

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime Belirtilen biçim ve kültüre özgü biçim bilgilerini kullanarak eşdeğer. Dize gösteriminin biçimi belirtilen biçim tam olarak eşleşmelidir.

System_CAPS_pubmethodSystem_CAPS_staticParseExact(String, String, IFormatProvider, DateTimeStyles)

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime Belirtilen biçim, kültüre özgü biçim bilgilerini ve stil kullanarak eşdeğer. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.

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

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime Belirtilen dizi biçimleri, kültüre özgü biçim bilgilerini ve stil kullanarak eşdeğer. Dize gösteriminin biçimi belirtilen biçimlerinden en az biri tam olarak eşleşmelidir veya bir özel durum oluşturulur.

System_CAPS_pubmethodSystem_CAPS_staticSpecifyKind(DateTime, DateTimeKind)

Yeni bir oluşturur DateTime belirtildiği gibi aynı sayısı olan nesneyi DateTime, yerel saat, Eşgüdümlü Evrensel Saat (UTC) veya hiçbiri belirtilen tarafından belirtildiği şekilde atanmış ancak DateTimeKind değeri.

System_CAPS_pubmethodSubtract(DateTime)

Belirtilen tarih ve saat bu örneğinden çıkarır.

System_CAPS_pubmethodSubtract(TimeSpan)

Bu örneğinden belirtilen süre çıkarır.

System_CAPS_pubmethodToBinary()

Geçerli serileştiren DateTime daha sonra yeniden oluşturmak için kullanılabilecek bir 64-bit ikili değer nesnesine DateTime nesne.

System_CAPS_pubmethodToFileTime()

Geçerli değerini dönüştürür DateTime nesne için bir Windows dosya zamanı.

System_CAPS_pubmethodToFileTimeUtc()

Geçerli değerini dönüştürür DateTime nesne için bir Windows dosya zamanı.

System_CAPS_pubmethodToLocalTime()

Geçerli değerini dönüştürür DateTime nesnesine yerel saat.

System_CAPS_pubmethodToLongDateString()

Geçerli değerini dönüştürür DateTime uzun tarih eşdeğer dize gösterimine nesnesine.

System_CAPS_pubmethodToLongTimeString()

Geçerli değerini dönüştürür DateTime uzun zaman eşdeğer dize gösterimine nesnesine.

System_CAPS_pubmethodToOADate()

Bu örneğinin değerini eşdeğer OLE Otomasyon tarihe dönüştürür.

System_CAPS_pubmethodToShortDateString()

Geçerli değerini dönüştürür DateTime kısa tarih eşdeğer dize gösterimine nesnesine.

System_CAPS_pubmethodToShortTimeString()

Geçerli değerini dönüştürür DateTime kısa saat eşdeğer dize gösterimine nesnesine.

System_CAPS_pubmethodToString()

Geçerli değerini dönüştürür DateTime Geçerli kültürün biçimlendirme kurallarını kullanarak eşdeğer dize gösterimine nesnesine.(ValueType.ToString() geçersiz kılar.)

System_CAPS_pubmethodToString(IFormatProvider)

Geçerli değerini dönüştürür DateTime belirtilen kültüre özgü biçim bilgilerini kullanarak eşdeğer dize gösterimine nesnesine.

System_CAPS_pubmethodToString(String)

Geçerli değerini dönüştürür DateTime için belirtilen biçim ve geçerli kültürün biçimlendirme kurallarını kullanarak eşdeğer dize gösterimine nesne.

System_CAPS_pubmethodToString(String, IFormatProvider)

Geçerli değerini dönüştürür DateTime için belirtilen biçim ve kültüre özgü biçim bilgilerini kullanarak eşdeğer dize gösterimine nesne.

System_CAPS_pubmethodToUniversalTime()

Geçerli değerini dönüştürür DateTime nesne için Eşgüdümlü Evrensel Saat (UTC).

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, DateTime)

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime eşdeğer ve dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime eşdeğer belirtilen kültüre özgü biçim bilgilerini kullanarak biçimlendirme stil ve dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

System_CAPS_pubmethodSystem_CAPS_staticTryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime Belirtilen biçim, kültüre özgü biçim bilgilerini ve stil kullanarak eşdeğer. Dize gösteriminin biçimi belirtilen biçim tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

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

Bir tarih ve saat için belirtilen dize gösterimini dönüştürür kendi DateTime Belirtilen dizi biçimleri, kültüre özgü biçim bilgilerini ve stil kullanarak eşdeğer. Dize gösteriminin biçimi belirtilen biçimlerinden en az biri tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

AdıAçıklama
System_CAPS_pubfieldSystem_CAPS_staticMaxValue

En büyük olası değeri temsil eden DateTime. Bu alan salt okunurdur.

System_CAPS_pubfieldSystem_CAPS_staticMinValue

Olası en küçük değerini temsil eden DateTime. Bu alan salt okunurdur.

AdıAçıklama
System_CAPS_puboperatorSystem_CAPS_staticAddition(DateTime, TimeSpan)

Yeni bir tarih ve saat sonuçlanmıyor belirtilen tarih ve saat, belirli bir zaman aralığı ekler.

System_CAPS_puboperatorSystem_CAPS_staticEquality(DateTime, DateTime)

Örneğini belirtilen iki olup olmadığını belirler DateTime eşit.

System_CAPS_puboperatorSystem_CAPS_staticGreaterThan(DateTime, DateTime)

Belirtilen olup olmadığını belirler DateTime belirtilen diğerinden daha DateTime.

System_CAPS_puboperatorSystem_CAPS_staticGreaterThanOrEqual(DateTime, DateTime)

Belirtilen olup olmadığını belirler DateTime temsil eden bir tarih ve saat veya daha sonraki başka bir belirtilen olarak aynıdır DateTime.

System_CAPS_puboperatorSystem_CAPS_staticInequality(DateTime, DateTime)

Örneğini belirtilen iki olup olmadığını belirler DateTime eşit değildir.

System_CAPS_puboperatorSystem_CAPS_staticLessThan(DateTime, DateTime)

Belirtilen olup olmadığını belirler DateTime belirtilen diğerinden daha eski DateTime.

System_CAPS_puboperatorSystem_CAPS_staticLessThanOrEqual(DateTime, DateTime)

Belirtilen olup olmadığını belirler DateTime temsil eden bir tarih ve saat olarak veya başka bir belirtilen daha önceki aynıdır DateTime.

System_CAPS_puboperatorSystem_CAPS_staticSubtraction(DateTime, DateTime)

Belirtilen tarih ve saati başka bir belirtilen tarih ve saat çıkarır ve bir zaman aralığı döndürür.

System_CAPS_puboperatorSystem_CAPS_staticSubtraction(DateTime, TimeSpan)

Belirtilen bir zaman aralığından belirtilen tarih ve saat çıkarır ve yeni bir tarih ve saati döndürür.

AdıAçıklama
System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Geçerli döndürür DateTime nesne.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Geçerli dönüştürür DateTime nesne için belirtilen türde bir nesne.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

Bu API,ürün altyapısını destekler ve API’nın doğrudan kodunuzdan çalıştırılması amaçlanmaz. Bu dönüşüm desteklenmiyor. Bu yöntemi kullanmaya çalışmak oluşturan bir InvalidCastException.

System_CAPS_pubinterfaceSystem_CAPS_privmethodISerializable.GetObjectData(SerializationInfo, StreamingContext)

Dolduran bir SerializationInfo nesnesi ile geçerli serileştirmek için gereken verileri DateTime nesne.

System_CAPS_noteNot

Bu tür için .NET Framework kaynak kodunu görüntülemek için bkz: Reference Source. Kaynak kodda Çevrimiçi Gözat, çevrimdışı izleme için başvuru indirmek ve hata ayıklama sırasında (düzeltme eklerinin ve güncelleştirmeleri dahil) kaynakları aracılığıyla adım; see instructions.

DateTime Değer türü tarihleri temsil eder ve 31 Aralık 9999 M.S. süreleri değerlerle 00:00:00-(gece yarısı), 1 Ocak 0001 Anno Domini arasında değişen (ortak dönemi) ile 11:59:59 ' a (C.E.) Gregoryen takvim.

Saat değerleri ticks adlı 100 nano saniyelik birim cinsinden ölçülür ve belirli bir tarih saat döngüleri 12:00 gece yarısından itibaren 1 Ocak 0001 M.S. sayısıdır (C.E.) içinde GregorianCalendar Takvim (artık saniye tarafından eklenen ticks hariç). Örneğin, 01 Ocak 0100, Cuma gece yarısı 12:00:00 tarih 31241376000000000L ticks değerini temsil eder. Bir DateTime değeri açık bir bağlamı veya varsayılan takvim her zaman ifade.

System_CAPS_noteNot

Ticks değeri ile çalışıyorsanız, bazı diğer zaman aralığı, dakika veya saniye gibi dönüştürmek istiyorsanız, kullanmanız gereken TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecond, veya TimeSpan.TicksPerMillisecond dönüştürme gerçekleştirmek için sabiti. Belirtilen sayıda çizgilerine tarafından saniye sayısı eklemek için örneğin temsil Second bileşeni olan bir DateTime değeri, ifade kullandığınız dateValue.Second + nTicks/Timespan.TicksPerSecond.

Bu bölümde:

Bir DateTime nesnesini örnekleme
DateTime değerleri ve bunların dize temsilleri
Dizeleri DateTime değerlerine dönüştürme
Sürüm değerlendirmeleri
DateTime değerleri
DateTime işlemleri
DateTime çözümleme
DateTime vs. TimeSpan
DateTime değerleri ve takvimler
Kalıcı DateTime değerleri
COM birlikte çalışabilirlik değerlendirmeleri

Yeni bir oluşturabilirsiniz DateTime aşağıdaki yollardan birini değer:

  • Herhangi bir aşırı yüklemelerinden birini çağırarak DateTime belirli tarih ve saat değeri (örneğin, yıl, ay ve gün veya sayısı) öğelerini belirtmenize olanak veren bir oluşturucu. Aşağıdaki deyim birini çağrıyı gösterir DateTime belirli yıl, ay, gün, saat, dakika ve saniye ile bir tarih oluşturmak için oluşturucu.

    DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);
    
  • Tarih ve saat değerlerini bildirmek için herhangi bir derleyici özgü sözdizimini kullanarak. Örneğin, aşağıdaki Visual Basic deyimi yeni başlatır DateTime değeri.

    Dim date1 As Date = #5/1/2008 8:30:52AM#
    
  • Atayarak DateTime bir tarih ve saat değeri bir özelliği veya yöntemi tarafından döndürülen nesne. Aşağıdaki örnek geçerli tarih ve saat, geçerli Eşgüdümlü Evrensel Saat (UTC) tarih ve saat ve geçerli tarihi üç ile yeni atar DateTime değişkenleri.

    DateTime date1 = DateTime.Now;
    DateTime date2 = DateTime.UtcNow;
    DateTime date3 = DateTime.Today;
    
  • Bir tarih ve saat değerinin dize gösterimini ayrıştırarak. Parse, ParseExact, TryParse, Ve TryParseExact tüm yöntemleri, eşdeğer tarih ve saat değeri bir dize dönüştürmek. Aşağıdaki örnek, kullanır Parse dönüştürebilir ve bir dizeyi ayrıştırmak için yöntem bir DateTime değeri.

    string dateString = "5/1/2008 8:30:52 AM";
    DateTime date1 = DateTime.Parse(dateString, 
                              System.Globalization.CultureInfo.InvariantCulture); 
    

    Aşağıdakilere dikkat edin TryParse ve TryParseExact yöntemleri belirli bir dizenin geçerli bir gösterimi içerip içermediğini gösteren bir DateTime dönüştürme gerçekleştirme yanı sıra değeri.

  • Çağırarak DateTime yapısı örtük varsayılan oluşturucu. (Bir değer türü örtük varsayılan oluşturucu hakkında daha fazla bilgi için bkz: Değer Türleri (C# Başvurusu).) Destekleyen derleyiciler için yaklaşık eşdeğeri bildirme bir DateTime için açıkça bir tarih ve saat atama olmadan değeri. Aşağıdaki örnek bir çağrıyı gösterir DateTime C# ve Visual Basic'te, örtük varsayılan oluşturucu yanı sıra bir DateTime hiçbir ataması Visual Basic'de değişken bildirimi.

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

Dahili olarak, tüm DateTime sayısı 12:00:00 gece yarısından itibaren 1 Ocak 0001 geçen (100 nano saniyelik aralıkların sayısını) değerleri temsil eder. Gerçek DateTime değerdir, bu değer bir kullanıcı arabirimi öğesi veya bir dosyaya yazılırken görüntülendiğinde görünümünü bağımsızdır. Görünümünü bir DateTime değerdir biçimlendirme işleminin sonucu. Biçimlendirme bir değeri dize gösterimine dönüştürme işlemidir.

Tarih ve saat değerlerinin görünümünü kültür, Uluslararası Standartlar, uygulama gereksinimleri ve kişisel tercih gibi etkenlere bağlı olduğundan DateTime yapısı önemli aşırı yüklemeleri ile tarih ve saat değerlerini biçimlendirirken esneklik sunar, ToString yöntemi. Varsayılan DateTime.ToString() yöntem geçerli kültürün kısa tarih ve uzun süre deseni kullanarak bir tarih ve saat değerinin dize gösterimini döndürür. Aşağıdaki örnek, varsayılan kullanır DateTime.ToString() tarih görüntüleme ve kısa tarih ve uzun süre deseni en-US kullanarak istediğiniz zaman için yöntem kültür, örnek çalıştırıldığı bilgisayarda geçerli kültür.

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

DateTime.ToString(IFormatProvider) Yöntemi kısa tarih ve uzun süre deseni belirli bir kültür kullanarak bir tarih ve saat değeri dize gösterimini döndürür. Aşağıdaki örnek, kullanır DateTime.ToString(IFormatProvider) tarih ve kısa tarih ve uzun süre deseni fr-FR kültürü için kullanarak istediğiniz zaman için yöntemi.

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

DateTime.ToString(String) Yöntemi bir standart veya özel biçim belirticisi tarafından tanımlanan ve geçerli kültürün biçimlendirme kurallarını kullanarak bir biçimde tarih ve saat dize gösterimini döndürür. Aşağıdaki örnek, kullanır DateTime.ToString(String) kültür, örnek çalıştırıldığı bilgisayarda geçerli kültürün tam tarih ve saat deseni en-us görüntülemek için yöntemi.

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

DateTime.ToString(String, IFormatProvider) Yöntemi bir özel biçim belirticisi tarafından tanımlanır ve belirli bir kültürün biçimlendirme kurallarını kullanarak bir biçimde tarih ve saat dize gösterimini döndürür. Aşağıdaki örnek, kullanır DateTime.ToString(String, IFormatProvider) tam tarih ve saat deseni fr-FR kültürü için görüntülemek için yöntemi.

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

Biçimlendirme hakkında daha fazla bilgi için DateTime değerler, bakın Standart Tarih ve Saat Biçim Dizeleri ve Özel Tarih ve Saat Biçim Dizeleri.

Ayrıştırma kapsar bir tarih ve saat için dize gösterimini dönüştürme bir DateTime değeri. Genellikle, tarih ve saat dizeleri uygulamalarında iki farklı kullanımları vardır:

  • Temsil ettikleri bir tarih ve saat, çeşitli formlarını alabilir ve, geçerli kültürün veya belirli bir kültürün kurallarını yansıtır. Örneğin, bir uygulama, geçerli kültürü en-US "12/15/2013" veya "15 Aralık 2013", bir tarih değeri giriş olan bir kullanıcı izin ve geçerli kültürü en-GB bir tarih değeri "12/15/2013" veya "15 Aralık 2013" giriş olan bir kullanıcı izin.

  • Bunlar, bir tarih ve saat önceden belirlenmiş bir biçimde temsil eder. Örneğin, bir uygulama tarih "20130103" olarak da uygulama çalışırken bir tarih geçerli kültürün kısa tarih biçiminde girdi olmaya gerektirebilir veya kültür bağımsız olarak seri hale.

Kullanabileceğiniz Parse veya TryParse yöntemi için bir kültür tarafından kullanılan ortak tarih ve saat biçimlerinden birini yansıtan bir dize dönüştürmek için bir DateTime değer. Aşağıdaki örnekte nasıl kullanacağınızı gösterir TryParse için kültüre özgü biçimlerde çeşitli tarih dizeleri dönüştürmek için bir DateTime değer. Geçerli kültürü İngilizce (İngiltere) ve çağrıları için değişiklik GetDateTimeFormats() tarih ve saat dizeleri dizisi oluşturmak için yöntem. İçin dizideki her öğe ardından geçirir TryParse yöntemi. Örneğin çıktısında ayrıştırma yöntemi başarıyla her kültüre özel tarih ve saat dizelerini dönüştürebilir gösterir.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");

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

      Console.WriteLine("{0,-37} {1,-19}\n", "Date String", "Date");
      foreach (var dateString in date1.GetDateTimeFormats()) {
         DateTime parsedDate;
         if (DateTime.TryParse(dateString, out parsedDate))
            Console.WriteLine("{0,-37} {1,-19}", dateString, DateTime.Parse(dateString));
         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("   {0}", badFormat);         
      }
   }
}
// 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

Kullanabileceğiniz TryParse ve TryParseExact belirli bir biçimi veya biçimleri için eşleşmesi gereken bir tarih ve saat dizesi dönüştürme yöntemleri bir DateTime değeri. Ayrıştırma yöntemi bir veya daha fazla kullanarak veya tarih ve saat biçim dizeleri için parametre olarak gerekli biçimi veya biçimleri belirtin. Aşağıdaki örnek, kullanır TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) "yyyyaagg" biçiminde veya "Ssddss" biçimine olmalıdır dizeleri dönüştürmek için yöntem DateTime değerleri.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats = { "yyyyMMdd", "HHmmss" };
      string[] dateStrings = { "20130816", "20131608", "  20130816   ", 
                               "115216", "521116", "  115216  " };
      DateTime parsedDate;

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

Parse Ve ParseExact yöntemleri, bir özel durum throw dönüştürülecek dize bir DateTime değeri ayrıştırılamaz. TryParse Ve TryParseExact yöntemleri döndürür bir Boolean Dönüştürme başarılı veya başarısız olduğunu belirten değer. Dizeleri kullanıcılar tarafından özellikle giriş, tarih ve saat dizelerini ayrıştırma işlemi bir yüksek hata oranı sahip eğilimindedir ve özel durum işleme pahalı olduğundan, kullanmanız gerekir çünkü TryParse veya TryParseExact burada önemli performans ya da dönüştürmeleri hatası yüksek oranda tabi senaryolarda yöntemleri.

Tarih ve saat değerlerini ayrıştırma hakkında daha fazla bilgi için bkz: .NET Framework'te Tarih ve Saat Dizelerini Ayrıştırma.

.NET Framework sürüm 2.0, önce DateTime yapısı içeren bir özel ile birleştirilmiş bir kullanılmayan 2 bit alanı oluşan bir 64-bit alanı Ticks sayısı, tarih ve saatini temsil eden içeren bir 62 bit işaretsiz alanı alanı. Değeri Ticks alan elde edilebilir ile Ticks özelliği.

.NET Framework 2.0 ile başlayarak DateTime yapısı Ticks alan ile birleştirilmiş özel bir tür alan oluşan bir 64-bit alanı içerir. Tür alanı gösteren bir 2 bit alanıdır olup olmadığını DateTime yapısı yerel saat, bir Eşgüdümlü Evrensel Saat (UTC) veya belirtilmeyen bir saat dilimi süreyi temsil eder. Tür alanı saat saat dilimleri arasında ancak zaman karşılaştırmaları veya aritmetik dönüştürmeler gerçekleştirilirken kullanılır. Tür alanının değeri ile elde edilebilir Kind özelliği.

System_CAPS_noteNot

Bir alternatif DateTime tarih ve saat değerleri ile saat dilimleri özellikle çalışma için yapı DateTimeOffset yapısı. DateTimeOffset Yapısı içinde özel tarih ve saat bilgilerini depolar DateTime alan ve, tarih ve saat dakika içinde bir özel UTC biçiminden farklıdır Int16 alan. Bu mümkün kılar bir DateTimeOffset zaman belirli bir saat dilimindeki içerirken yansıtacak şekilde değeri bir DateTime değeri üretemiyor yansıtır yalnızca UTC ve yerel saat diliminin saat. Ne zaman kullanılacağı hakkında bir tartışma için DateTime yapısı veya DateTimeOffset Yapı tarih ve saat değerleri ile çalışırken, bkz: DateTime, DateTimeOffset, TimeSpan ve TimeZoneInfo Arasında Seçim Yapma .

Saat değerleri açıklamalarını DateTime türü genellikle girilmiştir uluslararası olarak tanınan adı Greenwich saati (GMT) Eşgüdümlü Evrensel Saat (UTC) standart. Eşgüdümlü Evrensel Saat UTC başlangıç noktasını sıfır derece boylam ölçülen saattir. Yaz Saati UTC için geçerli değildir.

Belirli bir saat dilimine göre yerel saattir. Bir saat dilimi ile UTC başlangıç noktasını saat cinsinden saat dilimi öteleme olan bir saat dilimi uzaklığı ilişkilidir. Ayrıca, yerel saat isteğe bağlı olarak, ekler veya bir gün uzunluğu gelen çıkarır ışığından, etkilenir. Sonuç olarak, yerel saat saat dilimi kaymasını UTC ve Yaz Saati uygulaması için gerekirse ayarlama ekleyerek hesaplanır. Başlangıç noktasını UTC saat dilimi uzaklığı sıfırdır.

UTC saati dosyalarında hesaplamaları, karşılaştırmalar ve depolama tarih ve saat için uygundur. Yerel saat görünen kullanıcı arabirimlerinde Masaüstü uygulamaları için uygundur. Saat dilimi kullanan uygulamalar (örneğin, birçok Web uygulamaları) diğer saat dilimleri bir dizi çalışmanız gerekiyor.

Varsa Kind özelliği bir DateTime nesne DateTimeKind.Unspecified, gösterilen zamanı yerel, UTC saati veya başka bir saat diliminde bir süresi olup belirtilmemiş.

Bir hesaplama kullanarak bir DateTime gibi yapı Add veya Subtract, yapısı değerini değiştirmez. Bunun yerine, yeni bir hesaplama döndürür DateTime yapısı, değeri olan hesaplamanın sonucu.

Saat dilimleri (gibi UTC ve yerel saat arasında veya bir saat dilimi ile diğeri arasında) arasında dönüştürme işlemleri Yaz Saati dikkate alın, ancak aritmetik ve karşılaştırma işlemleri yapın.

DateTime Yapısı kendisini bir saat dilimine diğerine dönüştürmek için sınırlı destek sunar. Kullanabileceğiniz ToLocalTime yerel saat veya için UTC dönüştürmek için yöntemini kullanabilir ToUniversalTime yerel saatten UTC'ye dönüştürmek için yöntemi. Ancak, saat dilimi dönüştürme yöntemleri tam bir dizi kullanılabilir TimeZoneInfo sınıfı. Bu yöntemleri kullanarak, herhangi bir saat dilimi zamana dünyanın saat dilimleri herhangi birinde zaman dönüştürebilirsiniz.

Hesaplamalar ve karşılaştırmalarını DateTime nesneleri, yalnızca nesnelerin aynı saat dilimindeki saatleri temsil ediyorsa anlamlıdır. Kullanabileceğiniz bir TimeZoneInfo temsil etmek için nesne bir DateTime değerinin saat dilimi, iki gevşek bağlantısı rağmen. (Bu, bir DateTime nesne, tarih ve saat değerinin saat dilimi dışında temsil eden bir nesne döndürür bir özelliğe sahip değildir Kind özelliğini.) Bu nedenle, saat dilimiyle uyumlu bir uygulamada, saat diliminde belirlemek için bazı harici mekanizmayı Bel gerekir bir DateTime Nesne oluşturuldu. Örneğin, her ikisi de sarmalayan bir yapı kullanabilirsiniz DateTime değer ve TimeZoneInfo temsil eden nesne DateTime değerinin saat dilimi. UTC hesaplamalarında ve karşılaştırmalar kullanımıyla ilgili ayrıntılar için DateTime değerler, bakın Tarih ve Saatlerle Aritmetik İşlemler Gerçekleştirme.

Her DateTime üye örtük olarak Gregoryen takvim bir takvim belirtmeniz oluşturucular dışında bu işlemi gerçekleştirmek için kullanır ve yöntemleri bir parametre ile türetilen IFormatProvider, gibi System.Globalization.DateTimeFormatInfo, bir takvim örtük olarak belirtir.

Üyeleri tarafından işlemleri DateTime türü hesabı ayrıntıları gibi artık yıl ve ay içindeki gün sayısını içine alın.

Diğer yaygın iki işlem ile DateTime değerleri içeren bir tarih ve saat değeri ya da dize gösterimine dönüştürme. Dönüştürme işlemi bir DateTime dize gösterimine değere bir biçimlendirme işlemi; biçimlendirme hakkında daha fazla bilgi için bkz: DateTime değerleri ve bunların dize temsilleri. Bir tarih ve saat için dize gösterimini dönüştürme işlemi bir DateTime değeri bir ayrıştırma işlemi; ayrıştırma hakkında daha fazla bilgi için bkz: dizeleri DateTime değerlerine dönüştürme.

System_CAPS_noteNot

Tarih ve saat aritmetiği üzerinde gerçekleştirmek için alternatif olarak DateTime değerleri geçen süreyi ölçmek için kullanabileceğiniz Stopwatch sınıfı.

Ticks Özelliği tarih ve saat değerleri bir on-millionth ikinci bir ölçü birimleri ifade eder ve Millisecond özelliği bir tarih ve saat değerinde saniyenin binde biri döndürür. Ancak, yinelenen çağrıları kullanıyorsanız, DateTime.Now özelliği için geçen süre, ölçün ve 100 milisaniyeden değerinden küçük zaman aralıkları ile endişe, tarafından döndürülen değerler dikkat etmelisiniz DateTime.Now özelliği olan Windows 7 ve Windows 8 sistemlerde yaklaşık 15 milisaniye çözünürlüğü sistem saati bağımlı.

Aşağıdaki örnek, geçerli tarih ve saat değerleri bağımlılığı sistem saatinin çözünürlüğüne gösterir. Örnekte, bir dış döngü 20 kez yineler ve dış döngü gecikme bir iç döngüye sunar. Dış döngü sayacı değeri, 10, çağrı ise Thread.Sleep yöntemi beş milisaniye gecikme tanıtır. Örneğin çıktısında gösterildiği gibi milisaniye sayısı tarafından döndürülen DateTime.Now.Milliseconds özelliği değiştirilmiş çağırdıktan sonra yalnızca Thread.Sleep.

using System;
using System.Threading;

public class Example
{
   public static void Main()
   {
      String output = "";
      for (int ctr = 0; ctr <= 20; ctr++) {
         output += String.Format("{0}\n", DateTime.Now.Millisecond);
         // Introduce a delay loop.
         for (int delay = 0; delay <= 1000; delay++)
         {}

         if (ctr == 10) {
            output += "Thread.Sleep called...\n";
            Thread.Sleep(5);
         }
      }
      Console.WriteLine(output);
   }
}
// The example displays the following output:
//       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 Ve TimeSpan değer türleri, farklı bir DateTime ancak zamanında anlık temsil eder bir TimeSpan zaman aralığını temsil eder. Bu, örneğin, bir örneği çıkarabilirsiniz anlamına gelir DateTime almak için başka bir bir TimeSpan aralarında zaman aralığını temsil eden nesne. Veya bir pozitif ekleyebilirsiniz TimeSpan Geçerli DateTime elde etmek üzere bir DateTime gelecekteki bir tarih gösteren bir değer.

Ekleme veya çıkarma bir zaman aralığından bir DateTime nesnesi. Zaman aralıkları negatif veya pozitif olabilir, birimleri gibi ticks saniye cinsinden veya olarak ifade edilebilir bir TimeSpan nesnesi.

.NET Framework sınıf kitaplığı, türetilen Takvim sınıfları içerir Calendar sınıfı. Bunlar:

Her bir kültür, salt okunur tarafından tanımlanan varsayılan bir takvimi kullanır CultureInfo.Calendar özelliği ve bir veya daha fazla takvimler, salt okunur tarafından tanımlanan destekler CultureInfo.OptionalCalendars özelliği. Şu anda belirli bir tarafından kullanılan takvim CultureInfo nesne tarafından tanımlanır kendi DateTimeFormatInfo.Calendar özellik; içinde bulunan Takvimler biri olmalıdır CultureInfo.OptionalCalendars dizisi.

Bir kültürün geçerli takvimi, o kültür için tüm biçimlendirme işlemlerinde kullanılır. Örneğin, Farsça (Iran) kültürün varsayılan takvim olan um tarafından temsil edilen kura takvimini UmAlQuraCalendar sınıfı. Olduğunda bir CultureInfo Farsça (Iran) kültürü temsil eden bir tarih ve saat biçimlendirme işlemi, kullanılan ümmül kura takvimini varsayılan olarak kullanılır ve Gregoryen takvim yalnızca kullanılıyorsa kültürün DateTimeFormatInfo.Calendar Özellik değiştiğinde, aşağıdaki örnekte gösterildiği gibi.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      var faIR = new CultureInfo("fa-IR");
      var value = new DateTime(2016, 5, 28);

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

      faIR.DateTimeFormat.Calendar = new GregorianCalendar();
      Console.WriteLine(value.ToString(faIR));
   }
}
// The example displays the following output:
// 08/03/1395 12:00:00 ?.?
// 28/05/2016 12:00:00 ?.?

Bir kültürün geçerli takvimi de o kültür için tüm ayrıştırma işlemlerinde aşağıdaki örnekte gösterildiği gibi kullanılır.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      var faIR = new CultureInfo("fa-IR");
      var value = DateTime.Parse("08/03/1395", faIR);
      Console.WriteLine(value.ToString(faIR));

      faIR.DateTimeFormat.Calendar = new GregorianCalendar();
      Console.WriteLine(value.ToString(faIR));
   }
}
// The example displays the following output:
//       08/03/1395 12:00:00 ?.?
//       28/05/2016 12:00:00 ?.?

Ayrıca oluşturabileceğiniz bir DateTime değeri çağırarak tarih ve saat öğelerini (örneğin, yıl, ay ve gün sayısı) belirli bir takvim kullanarak bir DateTime Oluşturucu içeren bir calendar parametresi ve geçirerek bir Calendar Bu takvimi temsil eden nesne. Aşağıdaki örnek bu tarih ve saat öğeleri kullanarak yapar UmAlQuraCalendar Takvim.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      var faIR = new CultureInfo("fa-IR");
      var dat = new DateTime(1395, 8, 18, faIR.DateTimeFormat.Calendar);
      Console.WriteLine("Umm-al-Qura date: {0}", dat.ToString("d", faIR));
      Console.WriteLine("Gregorian date:   {0:d}", dat);
   }
}
// The example displays the following output:
//       Umm-al-Qura date: 18/08/1395
//       Gregorian date:   11/8/2016

DateTime Oluşturucular içermeyen bir calendar parametresi varsayın tarih ve saat öğeleri Gregoryen takvimindeki birimleri olarak ifade edilir.

Diğer tüm DateTime Gregoryen takvim özellikleri ve yöntemleri kullanın. Örneğin, DateTime.Year özelliği, Gregoryen takvimindeki yılı döndürmesi ve DateTime.IsLeapYear(Int32) yöntemi varsayar year Gregoryen takvimindeki bir yılın parametresidir. Her DateTime Gregoryen takvimini kullanır üye karşılık gelen bir üyesi olan Calendar belirli bir takvim kullanan sınıf. Örneğin, Calendar.GetYear yöntemi belirli bir takvimindeki yılı döndürmesi ve Calendar.IsLeapYear yöntemi olarak yorumlar year parametre olarak belirli bir takvimde yıl sayısı. Aşağıdaki örneği kullanın hem de DateTime ve karşılık gelen üyelerini UmAlQuraCalendar sınıfı.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      var faIR = new CultureInfo("fa-IR");
      var cal = faIR.DateTimeFormat.Calendar;
      var dat = new DateTime(1395, 8, 18, cal);
      Console.WriteLine("Using the Umm-al-Qura calendar:");
      Console.WriteLine("Date: {0}", dat.ToString("d", faIR));
      Console.WriteLine("Year: {0}", cal.GetYear(dat));
      Console.WriteLine("Leap year: {0}\n", 
                        cal.IsLeapYear(cal.GetYear(dat)));

      Console.WriteLine("Using the Gregorian calendar:");
      Console.WriteLine("Date: {0:d}", dat);
      Console.WriteLine("Year: {0}", dat.Year);
      Console.WriteLine("Leap year: {0}", DateTime.IsLeapYear(dat.Year));
   }
}
// The example displays the following output:
//       Using the Umm-al-Qura calendar:
//       Date: 18/08/1395
//       Year: 1395
//       Leap year: True
//       
//       Using the Gregorian calendar:
//       Date: 11/8/2016
//       Year: 2016
//       Leap year: True

Ancak DateTime yapısı içerir DayOfWeek Gregoryen takvime haftanın gününü verir özelliği, bunu içermez üyesi yılın hafta numarasını almanıza olanak tanır. Yılın haftası almak için tek tek takvimin çağrı Calendar.GetWeekOfYear yöntemi. Aşağıdaki örnek, bir gösterim sağlar.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      var faIR = new CultureInfo("fa-IR");
      var umAlQura = faIR.DateTimeFormat.Calendar;
      var dat = new DateTime(1395, 8, 18, umAlQura);
      Console.WriteLine("Using the Umm-al-Qura calendar:");
      Console.WriteLine("Date: {0}", dat.ToString("d", faIR));
      Console.WriteLine("Day of Week: {0}", umAlQura.GetDayOfWeek(dat));
      Console.WriteLine("Week of year: {0}\n", 
                        umAlQura.GetWeekOfYear(dat, CalendarWeekRule.FirstDay, 
                                               DayOfWeek.Sunday));

      var greg = new GregorianCalendar(); 
      Console.WriteLine("Using the Gregorian calendar:");
      Console.WriteLine("Date: {0:d}", dat);
      Console.WriteLine("Day of Week: {0}", dat.DayOfWeek);
      Console.WriteLine("Week of year: {0}", 
                         greg.GetWeekOfYear(dat, CalendarWeekRule.FirstDay, 
                                            DayOfWeek.Sunday));
   }
}
// The example displays the following output:
//       Using the Umm-al-Qura calendar:
//       Date: 18/08/1395
//       Day of Week: Tuesday
//       Week of year: 34
//       
//       Using the Gregorian calendar:
//       Date: 11/8/2016
//       Day of Week: Tuesday
//       Week of year: 46

Tarihler ve takvimler hakkında daha fazla bilgi için bkz: Takvimlerle Çalışma.

Kalıcı hale getirebilirsiniz DateTime dört farklı şekilde değerler:

Seçtiğiniz yöntemden bağımsız olarak, geri yükleyen rutin emin olmalısınız DateTime değerleri veri kaybı veya bir özel durum değil. DateTime gidiş dönüş değerleri gerekir. Diğer bir deyişle, özgün ve geri yüklenen değeri aynı olmalıdır. Ve özgün DateTime değeri tek bir anlık süreyi temsil eder, zaman zaman geri aynı anda tanımlamanız gerekir.

Başarılı bir şekilde geri yüklemek için DateTime dize olarak kalıcı değerleri bu kuralları izleyin:

  • Kültüre özgü biçimlendirme hakkında ne zaman kalıcı olarak dize geri yüklerken aynı varsayımlar olun. Bir dize geçerli kültürü kültür üzerinde kaydedildi sisteminin farklı bir sisteme geri emin olmak için çağrı ToStringdize sabit kültürü ve arama kurallarını kullanarak kaydetmek için aşırı Parse(String, IFormatProvider, DateTimeStyles) veya TryParse(String, IFormatProvider, DateTimeStyles, DateTime) dize sabit kültürün kurallarını kullanarak geri yüklemek için aşırı yükleme. Hiçbir zaman kullanmayın ToString(), Parse(String), veya TryParse(String, DateTime) aşırı yüklemeleri geçerli iş parçacığı kültürün kurallarını kullanın.

  • Verileri tek biraz zaman temsil ediyorsa, farklı bir saat dilimine kullanan bir sistemde geri olsa bile zaman zaman geri yüklendikten, aynı anda gösterdiğinden emin olun. Bunu yapmak için dönüştürmeniz DateTime kaydetmeden önce değeri için Eşgüdümlü Evrensel Saat (UTC). Saat dilimi bilgileri ile birlikte değeri seri hale getirebilir; Bu yaklaşım hakkında daha fazla bilgi için bkz: DateTime seri hale getirme ve saat dilimi veri.

Kalıcı yapılan en yaygın hata DateTime değerleri dize olarak gelir üzerinde varsayılan veya geçerli kültürün biçimlendirme kurallarını kullanır. Geçerli kültür kaydetme ve geri yükleme dizeleri olduğunda farklıysa, sorunları ortaya çıkar. Aşağıdaki örnek bu sorunları gösterir. Bu durumda İngilizce (ABD) olan geçerli kültürün biçimlendirme kurallarını kullanarak beş tarihleri kaydeder. Bu tarihleri, bu durumda İngilizce (İngiltere) olan geçerli kültürün biçimlendirme kurallarını kullanarak geri yükler. Biçimlendirme kuralları iki kültürlerin farklı olduğundan, iki tarih geri yüklenemez ve kalan üç tarihleri yanlış yorumlanır. Ayrıca, saat, geri yüklenen tek dakika sonra orijinal tarih ve saat değerlerini temsil ediyorsa saat dilimi bilgilerini kayıp olduğundan kez yanlış.

using System;
using System.Globalization;
using System.IO;
using System.Threading;

public class Example
{
   private const string filename = @".\BadDates.txt";

   public static void Main()
   {
      if (! File.Exists(filename))
         SaveDates();
      else
         RestoreDates();
   }

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

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

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

Gidiş dönüş için DateTime değerleri başarıyla, şu adımları izleyin:

  1. Zaman tek dakika değerleri temsil ediyorsa, bunları yerel saatten UTC'ye çağırarak dönüştürmek ToUniversalTime yöntemi.

  2. Tarihleri çağırarak bunların dize temsilleri dönüştürmek ToString(String, IFormatProvider) veya String.Format(IFormatProvider, String, Object[]) aşırı yükleme. Sabit kültürün biçimlendirme kurallarını belirterek kullanmak CultureInfo.InvariantCulture olarak provider bağımsız değişkeni. Değer gidiş dönüş "O" veya "R" kullanarak gerektiğini belirtin.

  3. Çağırdığınızda Parse(String, IFormatProvider, DateTimeStyles) veya TryParse(String, IFormatProvider, DateTimeStyles, DateTime) yöntemi.

Kalıcı geri yüklemek için DateTime değerleri veri kaybı olmadan şunları yapın:

  1. Verileri ayrıştırmak çağırarak ParseExact veya TryParseExact aşırı yükleme. Belirtin CultureInfo.InvariantCulture olarak provider bağımsız değişkeni ve kullanım için kullanılan aynı standart biçim dizesi format dönüştürme sırasında bağımsız değişken. Dahil DateTimeStyles.RoundtripKind değerini styles bağımsız değişkeni.

  2. Varsa DateTime değerlerini temsil eden tek dakika çağrısı, zaman içinde ToLocalTime ayrıştırılmış tarihi UTC ile yerel saate dönüştürmek için yöntemi.

Aşağıdaki örnek emin olmak için sabit kültürü ve "O" standart biçim dizesi kullanır DateTime kaydedilir ve geri değerleri sistem, kültür veya saat dilimi, kaynak ve hedef sistemlerinin bağımsız olarak zaman içinde aynı anda temsil eder.

using System;
using System.Globalization;
using System.IO;
using System.Threading;

public class Example
{
   private const string filename = @".\Dates.txt";

   public static void Main()
   {
      if (! File.Exists(filename))
         SaveDates();
      else
         RestoreDates();
   }

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

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

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

Kalıcı yerine bir DateTime değeri olarak kalıcı bir dize olarak bir Int64 ticks sayısını gösteren bir değer. Bu durumda, sistemleri kültürünü göz önünde bulundurun gerekmez DateTime değerleri, kalıcı ve geri.

Kalıcı hale getirmek için bir DateTime değeri bir tamsayı olarak:

  • Varsa DateTime değerleri temsil eden tek dakika zaman içinde çağırarak UTC'ye dönüştürmek ToUniversalTime yöntemi.

  • Tarafından temsil edilen sayısı almak DateTime den kendi Ticks özellik.

Geri yüklemek için bir DateTime kalıcı bir tamsayı değeri:

  1. Yeni bir örneğini DateTime nesnesini geçirerek Int64 değerini DateTime(Int64) Oluşturucusu.

  2. Varsa DateTime değeri zaman içinde tek bir ana temsil eder, UTC çağırarak yerel saate dönüştürmeniz ToLocalTime yöntemi.

Aşağıdaki örnek, bir dizi devam ederse DateTime değerler olarak bir sistem üzerinde ABD tamsayılar Pasifik Saat dilimi. Bu, bir sistem üzerinde UTC bölge geri yükler. Tam sayılar içeren dosyayı içeren bir Int32 toplam sayısını gösteren değer Int64 hemen sonraki değeri.

using System;
using System.Globalization;
using System.IO;
using System.Threading;

class Example
{
   private const string filename = @".\IntDates.bin";

   public static void Main()
   {
      if (! File.Exists(filename))
         SaveDates();
      else
         RestoreDates();
   }

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

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

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

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

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

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

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

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

Kaydetme yerine DateTime değerleri dizeler veya ardından dönüştürmeniz gerekir tamsayılar olarak başa DateTime değerleri kalıcı DateTime serileştirme akış veya dosyaya ve ardından geri yükleme ile seri durumundan çıkarma bunları değerleri. Bu durumda, DateTimeveri seri hale getirilmiş bazı belirtilen nesne biçiminde ve bunlar seri olduğunda nesneleri geri yüklenir. Bir biçimlendirici veya seri hale getirici, gibi XmlSerializer veya BinaryFormatter, serileştirme ve seri durumundan çıkarma işlemini gerçekleştirir. Serileştirme ve seri hale getirme .NET Framework tarafından desteklenen türleri hakkında daha fazla bilgi için bkz: .NET Framework seri hale getirme.

Aşağıdaki örnek, kullanır XmlSerializer sınıfı seri hale getirmek ve seri durumdan DateTime tüm temsil eden değerleri leap yirmi birinci yüzyıl yılın gün. Örnek, geçerli kültürü İngilizce (İngiltere) olan bir sistem üzerinde çalıştırırsanız, çıkış sonucunu temsil eder. Biz seri çünkü DateTime nesnesinin kendisi, kod tarih ve saat biçimleri kültürel farkları işleme gerekmez.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Xml.Serialization;

class Example
{
   private const string filename = @".\LeapYears.xml";

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

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

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

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

      // Display the dates.
      Console.WriteLine("Leap year days from 2000-2100 on an {0} system:",
                        Thread.CurrentThread.CurrentCulture.Name);
      int nItems = 0;
      foreach (var dat in deserializedDates) {
         Console.Write("   {0:d}     ", dat);
         nItems++;
         if (nItems % 5 == 0) 
               Console.WriteLine(); 
      }
   }
}
// The example displays the following output:
//    Leap year days from 2000-2100 on an en-GB system:
//       29/02/2000       29/02/2004       29/02/2008       29/02/2012       29/02/2016
//       29/02/2020       29/02/2024       29/02/2028       29/02/2032       29/02/2036
//       29/02/2040       29/02/2044       29/02/2048       29/02/2052       29/02/2056
//       29/02/2060       29/02/2064       29/02/2068       29/02/2072       29/02/2076
//       29/02/2080       29/02/2084       29/02/2088       29/02/2092       29/02/2096

Önceki örneği süre bilgileri içermez. Ancak, bir DateTime değeri zaman içinde bir ana temsil eder ve yerel saat olarak ifade edilir, yerel saatten UTC'ye çağırarak serileştirme önce dönüştürmeden ToUniversalTime yöntemi. Bu seri sonra UTC ile yerel saat çağırarak dönüştürmeden ToLocalTime yöntemi. Aşağıdaki örnek, kullanır BinaryFormatter serileştirmek için sınıfDateTime veri bir sistem üzerinde ABD Pasifik Standart saat dilimi ve bir sistem üzerinde UTC bölge serisini kaldırmak için.

using System;
using System.IO;
using System.Globalization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;

class Example
{
   private const string filename = @".\Dates.bin";

   public static void Main()
   {
      if (! File.Exists(filename))
         SaveDates();
      else
         RestoreDates();
   }

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

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

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

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

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

      Console.WriteLine("Restored dates...");   
   }
}
// When saved on an en-US system, the example displays the following output:
//       Current Time Zone: (UTC-08:00) Pacific Time (US & Canada)
//       The dates on an en-US system:
//       Saturday, June 14, 2014 6:32 AM
//       Thursday, July 10, 2014 11:49 PM
//       Saturday, January 10, 2015 1:16 AM
//       Saturday, December 20, 2014 9:45 PM
//       Monday, June 02, 2014 3:14 PM
//       Saved dates...
//
// When restored on an en-GB system, the example displays the following output:
//       Current Time Zone: (UTC) 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...

Önceki örneklerde tüm, kabul DateTime değerleri yerel saatlere ifade edilir ve bunlar kaynak ve hedef sistemlerinde zaman içinde aynı anda yansıtacak şekilde UTC ve yerel saat arasındaki değerleri dönüştürülür. DateTime değerleri de dışındaki yerel saat dilimi ile UTC zamanı dakika sonra yansıtır. Bu durumda, çünkü DateTime yapısı saat dilimiyle uyumlu değil, hem seri hale getirmek zorunda DateTimedeğeri ve TimeZoneInfo saat dilimini temsil eden nesne. Bunu yapmak için her ikisi de dahil, alanları bir tür oluşturmak DateTime değeri ve kendi saat dilimi. Aşağıdaki örnekte tanımlayan bir DateWithTimeZone yapısı bunun nasıl yapılacağı gösterilmektedir.

using System;

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

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

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

      public DateTime DateTime 
      { get { return (dt); }
        set { dt = value; } }
   }
}
System_CAPS_importantÖnemli

DateWithTimeZone Yapısı, dizisi seri hale getrime ve sonraki iki örneklerde kullanılan DateWithTimeZone nesneleri. Örnekleri çalıştırabilmek için önce içeren bir sınıf kitaplığı oluşturun DateWithTimeZone yapılandırın ve ardından her örneğin derlerken bir başvuru ekleyin.

Kullanarak DateWithTimeZone yapısı, tarih ve saat dilimi bilgileri ile birlikte saat sonra devam edebilir. Aşağıdaki örnek, kullanır BinaryFormatter dizisi seri hale getirmek için sınıf DateWithTimeZonenesneleri.

using System;
using DateTimeExtensions;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

public class Example
{
   public static void Main()
   {
      DateWithTimeZone[] dates= { new DateWithTimeZone(new DateTime(2014, 8, 9, 19, 30, 0),  
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),
                                  new DateWithTimeZone(new DateTime(2014, 8, 15, 19, 0, 0), 
                                      TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time")),  
                                  new DateWithTimeZone(new DateTime(2014, 8, 22, 19, 30, 0),  
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")),  
                                  new DateWithTimeZone(new DateTime(2014, 8, 28, 19, 0, 0), 
                                      TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")) };
      FileStream fs = new FileStream(@".\Schedule.bin", FileMode.Create);
      BinaryFormatter formatter = new BinaryFormatter();
      try {
         formatter.Serialize(fs, dates);
         // Display dates.
         foreach (var date in dates) {
            TimeZoneInfo tz = date.TimeZone;
            Console.WriteLine("{0} {1}", date.DateTime, 
                              tz.IsDaylightSavingTime(date.DateTime) ? 
                              tz.DaylightName : tz.StandardName);      
         }
      }
      catch (SerializationException e) {
         Console.WriteLine("Serialization failed. Reason: {0}", 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

Aşağıdaki örnek daha sonra çağırır BinaryFormatter.Deserialize Bu seri için yöntemi.

using System;
using DateTimeExtensions;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

public class Example
{
   private const string filename = @".\Schedule.bin";

   public static void Main()
   {
      FileStream fs;
      if (File.Exists(filename))
         fs = new FileStream(filename, FileMode.Open);
      else {
         Console.WriteLine("Unable to find file to deserialize.");
         return;
      }

      BinaryFormatter formatter = new BinaryFormatter();
      DateWithTimeZone[] dates;
      try {
         dates = (DateWithTimeZone[]) formatter.Deserialize(fs);
         // Display dates.
         foreach (var date in dates) {
            TimeZoneInfo tz = date.TimeZone;
            Console.WriteLine("{0} {1}", date.DateTime, 
                              tz.IsDaylightSavingTime(date.DateTime) ? 
                              tz.DaylightName : tz.StandardName);      
         }
      }
      catch (SerializationException e) {
         Console.WriteLine("Deserialization failed. Reason: {0}", 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

A DateTime COM uygulamaya aktarılır ve ardından geri bir yönetilen uygulama, aktarılan değer gidiş dönüş yapabilen söylenir. Ancak, bir DateTime yalnızca bir kez belirten değeri uymayan beklediğiniz gibi gidiş dönüş.

Gidiş dönüş, yalnızca bir kez, öğleden sonra 3, son tarih ve saat gibi 3: 00'da 30 Aralık 1899 C.E. 3: 00'da, yerine, 1 Ocak 0001 C.E.'yi ise COM ve .NET Framework yalnızca bir kez belirtildiği zaman, varsayılan bir tarih varsayın olur. Ancak, .NET Framework temel tarihi, 1 Ocak 0001 C.E.'yi varsayar ederken COM Sistem 30 Aralık 1899 C.E. temel tarihi varsayar

COM için yalnızca bir kez .NET Framework'ten geçirildiğinde, COM tarafından kullanılan biçime dönüştürür özel işleme gerçekleştirilir Yalnızca bir kez COM'dan .NET Framework geçirildiğinde, yasal tarih ve saat veya daha önce 30 Aralık 1899 bozuk için hiçbir özel işleme gerçekleştirilir. Bu da bir tarih COM'dan kendi gidiş dönüş başlarsa, COM ve .NET Framework tarihi korumak anlamına gelir.

COM ve .NET Framework davranışını ise, uygulama gidiş gelişleri anlamına gelir. bir DateTime yalnızca bir süreyi belirtir, uygulamanızın değiştirmek ya da hatalı son tarihten yoksay unutmamalısınız DateTime nesne.

Aşağıdaki örnek kabaca karşılaştırmak gösterilmiştir eşdeğer DateTime değerleri, bunları eşit bildirirken fark küçük kenar boşluğu kabul etme.

using System;

class DateTimeTester 
{
   static bool RoughlyEquals(DateTime time, DateTime timeWithWindow, int windowInSeconds, int frequencyInSeconds)
   {
      long delta = (long)((TimeSpan)(timeWithWindow - time)).TotalSeconds 
                                                     % frequencyInSeconds;

      delta = delta > windowInSeconds ? frequencyInSeconds - delta : delta;

      return Math.Abs(delta) < windowInSeconds;
	}

	public static void Main() 
	{
      int window = 10;
      int freq = 60 * 60 * 2; // 2 hours;

      DateTime d1 = DateTime.Now;

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

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

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

      Console.WriteLine("d1 ({0}) ~= d6 ({1}): {2}", 
                        d1, d6, RoughlyEquals(d1, d6, window, freq));
      Console.WriteLine("d1 ({0}) ~= d7 ({1}): {2}", 
                        d1, d7, RoughlyEquals(d1, d7, window, freq));
      Console.WriteLine("d1 ({0}) ~= d8 ({1}): {2}", 
                        d1, d8, RoughlyEquals(d1, d8, window, freq));
      Console.WriteLine("d1 ({0}) ~= d9 ({1}): {2}", 
                        d1, d9, RoughlyEquals(d1, d9, window, freq));
	}
}
// 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

Evrensel Windows Platformu
8 sonrasında kullanılabilir
.NET Framework
1.1 sonrasında kullanılabilir
Taşınabilir Sınıf Kitaplığı
Destekleyen: taşınabilir .NET platformları
Silverlight
2.0 sonrasında kullanılabilir
Windows Phone Silverlight
7.0 sonrasında kullanılabilir
Windows Phone
8.1 sonrasında kullanılabilir

Bu türün tüm üyeleri iş parçacığı güvenli olan. Ö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. Olarak başka herhangi bir tür ile okuma ve yazma bu türün örneğini içeren paylaşılan değişkenini iş parçacığı güvenliği sağlamak için bir kilit tarafından korunmalıdır.

System_CAPS_cautionUyarı notu

İkili temsili, tek bir atomik işlemde atanamayacak kadar büyük olduğundan bu türünün bir örneği atama tüm donanım platformlarında güvenli iş parçacığı değil.

Başa dön
Show: