Eski bir veritabanından bazı tarihler ve saatler kullanmam gerekiyor. Dizeler olarak temsil edilirler. Tarihler dd/MM/yy. Zamanlar HH: mm.UK zamanları (hem BST hem de GMT) dizeleri UTC (C#) olarak dönüştürülüyor
Bunları veritabanından aldığım anda bunları UTC'ye dönüştürmek istiyorum. ABD sistemleri üzerinde çalışıyorum, bu yüzden ortak bir zamana ihtiyacım var.
Karşılaştığım sorun, bunları UTC DateTime değerlerine dönüştürmektir. Ayrıştırma yapabilirim, vb. Gerçek sorun, zaman dilimini ilgilendirir. tarih İngiltere Yaz Saati döneminde ise
DateTime ukTime = // Parse the strings in a DateTime value.
TimeZoneInfo timeZoneInformation = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTimeOffset utcTime = new DateTimeOffset(ukTime, timeZoneInformation.BaseUtcOffset);
Ancak bu hatalı değerler verir:
Ben aşağıdaki yaklaşımı kullanmaya çalışıyorum."GMT Gün Işığı Saati" ni bu tarihlerde kullanabilirim, ancak geçişin ne zaman olduğunu bilmem gerekiyor. Eminim daha az zahmetli bir yol olmalı.
İngiltere saat ayarlarına sahip bir makine kullanmadığım için yerel saate dayanamıyorum. Ben mesajları dolaştılar ettik ama doğrudan bu ele bir şey bulamadı
// Works for both GMT (UTC+0) and BST (UTC+1) regardless of the regional settings of the system it runs on.
DateTime ParseUkTimeAsUtcTime(string date, string time)
{
...
}
:
Temelde, böyle bir şey lazım. Elbette bu da EST, EDT, vb. Bir sorun mu?
Genel bir TimeInTimeZone-> TimeInUTC yöntemi olarak buna ihtiyacım var. –