Tamam, Orta Standart Saat Dilimi'nde barındırılan bir web sunucum var. IIS sunucusu, Saat Dilimi ile yapılandırılır, bu nedenle sunucuda DateTime.Now kullanıldığında veya tür Yerel olduğunda yeni bir DateTime oluşturulduğunda, Merkezi saatte olur. Sorun şu ki, site (ulusal) bir uygulamadır ve ABD veya Kanada'nın herhangi bir yerinde müşterilerimiz olabilir. Sitenin sahip olduğu şeylerden biri, randevuları planlamak için bir çeşit "Zamanlayıcı" dır. Tüm DateTime değerlerini veritabanında UTC biçiminde depolamak ve API içindeki ve dışındaki tüm trafiğin UTC'de de yer alması için geliştirme kolaylığına karar verdik. Sorun şu ki, sunucu tarafında tarih/saat değerleri oluşturduğumda sık sık sorunlarla karşılaşıyorum. Örneğin, saat 8'de sunucudaki Pasifik Standart Saati bölgesinde istemci için bir randevu programlı olarak oluşturmalıyım. Geçmişte, böyle şeyler yapmış:DateTime, belirli bir saat diliminden Nodatime kullanarak UTC'ye dönüştürülür.
var appointment = new new DateTime(2015, 04, 17, 08, 00, 00, DateTimeKind.Unspecified)
var utcAppointment = TimeZoneInfo.ConvertTimeToUtc(appointment,
TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"))
Diğer tarih/saat manipülasyonlara çok yanı olan programım yapmak ve sadece yerine Nodatime gitmeyi düşünüyorum. UTC DateTime'ı Nodatime değişkeninden oldukça kolay bir şekilde alabileceğimi biliyorum. Kafam karıştığı şey, belirli bir tarih/saatte belirli bir saat dilimi için Nodatime değişkeninin nasıl oluşturulacağıdır? Gördüğüm tüm örnekler, Desenler ve okuma dizeleriyle veya esasen "Şimdi" olan bir Anında oluşturma ile ilgili. Var olan BCL DateTime nesnesini "Tür" e bakmaksızın almak ve onu ayarladığım belirli saat dilimine sahip bir Nodatime nesnesine dönüştürmek gibi bir şey yapmak istiyorum.
Sanırım Nodatime harika bir kütüphanedir, ancak kullanıcı kılavuzunu okumak bana kafamı BCL'nin içine ve dışına dönüştürmeyi bıraktı.
Benzer bir şey sordum [here] (http://stackoverflow.com/q/7553997/397817) ama aslında bir NodaTime sorusu değildi. Tartışma, bu sorunun gelecekteki okuyucularına yardımcı olabilir. Ayrıca, Jon Skeet'in uygun olan yerlerde Web API'sinde NodaTime türlerini kullanma önerisini de yapabilirim. zamanlamanızın zaman kısmı için bir LocalTime - seri hale getirme için bir yardımcı kütüphanesi bile var, NodaTime.Serialization.JsonNet. –