Sadece DateTime
değişkenimdeki "s" zamanı nasıl değiştirebilirim?
DateTime s = some datetime;
Bir DateTime değerini değiştiremezsiniz - değişmezdir. Ancak, değişkeni yeni bir değere sahip olacak şekilde değiştirebilirsiniz. Sadece zamanı değiştirmek için bunu yapmanın en kolay yolu, ilgili zaman ile bir TimeSpan oluşturmak ve DateTime.Date özelliğini kullanmaktır:
DateTime s = ...;
TimeSpan ts = new TimeSpan(10, 30, 0);
s = s.Date + ts;
'ler' artık aynı tarihte, ancak saat 10.30'da olacak.
DateTimeın yaz saati geçişlerini dikkate almadığını ve her iki yönde de "naive" Gregoryen zamanını temsil ettiğini unutmayın (bkz. [
DateTimedocs][1] içindeki Açıklamalar bölümü). Tek istisnalar
.Nowve
.Today`dir: bu olaylar meydana geldikçe bunları yansıtan mevcut sistem zamanını alırlar.
Şu anda üretime hazır olan Noda Time projesine başlamam için beni motive eden de bu tür bir şeydi. Onun ZonedDateTime
tipi "aware" bir tz
veritabanı girişine bağlanarak yapılmıştır.