Sorgulamamda bir UTC tarihi gönderiyor, ör.WebApi querystring parametresi bağlamasının UTC tarihleri nasıl saklanır?
Ve kontrol parametresi karmaşık bir nesne, örneğin, onu bağlayan Ben anlamaya başardınız ne& bitiştarihi = 2000-01-02T03% 3a04% 3a05.0060000Z
public async Task<DocumentsRequest> GetEchoFromUriDocumentsAsync(
[FromUri] DocumentsRequest request)
{
return request;
}
parametre bağlama sonra benim nesne, ofset yerel tarihe + benim UTC tarih değiştirmesidir. İşte benim test davanın snippet'idir
[TestMethod]
public void Should_generate_querystring_and_parameter_bind_correctly()
{
DocumentsRequest request = DocumentRequestBuilder.DocumentsRequest();
string queryString = ReflectionQueryStringConverter.ToQueryString(request);
string baseUrl = "http://baseUrl/Test/EchoFromUriDocuments";
string uri = baseUrl + queryString;
HttpResponseMessage response = _client.GetAsync(uri).Result;
string outputString = response.Content.ReadAsStringAsync().Result;
JsonSerializer<DocumentsRequest> serializer =
new JsonSerializer<DocumentsRequest>();
DocumentsRequest output = serializer.DeserializeFromString(outputString);
output.EndDate.Should().Be(request.EndDate);
}
çıkışı olduğu için yukarıdaki başarısız:
2000-01-01T19: 04: 05.006-08: 00
Ama Daha sonra json serileştirme ofseti keser ve UTC tarihi olduğunu varsayar ve görebildiğiniz gibi, tarihler gidiş-dönüş yolculuğuna uymaz.
Orada da benzer bir soru burada, ama gerçekten bir cevap (cevap afiş kendi soru)
Passing UTC DateTime to Web API HttpGet Method results in local time
Bu sorunu çözmek için doğru çözüm nedir ? Sorun şu ki, querystring'i UTC olarak bir tarih ayrıştırmak için parametre bağlamasının olmasını istiyorum. TypeConverter gitmek için bir yol mu? Bunun nasıl yapılacağı konusunda tam bir örnek var mı? DateTime ile tüm sınıflarımdaki tüm öznitelikte TypeConverter kullanmalı mıyım? Küresel bir çeşit konfigürasyonu umuyordum.
Teşekkürler.
Bağladığınız soruyu iyi bir yanıtı buldum (ki bu sorudan önce ortaya çıkıyordu, ancak t'ye rağmen kabul edilen yanıt olarak işaretlenmedi) Bu arada en çok oyu alan): http://stackoverflow.com/a/24899562/125407 –
olası [Kopyalama UTC DateTime Web API HttpGet Metodu sonuçlarına yerel saatte] (http: // stackoverflow.com/questions/22581138/geçirme-utc-datetime-to-web-api-httpget-yöntem-yerel-zaman-sonuç) –