DateTimeToUniversalTime Metode-System

c# - Konvertere datetime uden tidszone - Stack Overflow

Følgende kode tilladt mig at få den dato, der er formateret som 31st, men det plejer at arbejde 100% for ikke Daylioght at Gemme datoer (angivet i dette foder). For eksempel, ReturnTimeOnServer metode i det foregående eksempel kunne skrives som følger med at kalde ConvertTime(DateTimeOffset, TimeZoneInfo) metode. Brug af UTC tid er anbefalet, når en dato og tid, er muligheden for overførsel mellem computere, der er vigtigt. (For nærmere oplysninger og bedste praksis for brug af datoer og tidspunkter, se Kodning af bedste praksis for brug DateTime på the.NET Ramme.) Konvertering af individuelle tidszoner til UTC-tid gør sammenligninger let. Ergo en enkelt værdi, der repræsenterer et punkt i tiden med nogen præcision SKAL omfatte både dato og tid ved hjælp af en reference som udgangspunkt. En uoverensstemmelse opstår, hvis den Slags ejendom er DateTimeKind.Lokale, men TimeZoneInfo objekt ikke repræsenterer den lokale tidszone, eller hvis den Slags ejendom er DateTimeKind.Utc men TimeZoneInfo objekt ikke lige TimeZoneInfo.Utc. Lokal, men sourceTimeZone parameter ikke er lig med DateTimeKind. De lokale. For mere information, se Bemærkninger afsnit. -eller - Type ejendom dateTime parameter er DateTimeKind. Som svar antyder, er DateTime.Dato (som er DateTime det selv!) har en tid en del misligholdende til 00:00:00. Noter til Opkald: På Windows XP-systemer, denne metode gælder kun for den aktuelle justering regel, når du udfører konverteringen, hvis dateTime behandles som en lokal tid, hvis sourceTimeZone er TimeZoneInfo.Lokalt, eller hvis destinationTimeZone er TimeZoneInfo.De lokale. Som et resultat, kan metoden ikke præcist konvertere gange for perioder, der ligger før den aktuelle justering af reglen trådte i kraft. Jeg kan omdøbe min DateTime ejendom og tilføjer en streng ejendom, der har samme navn, der DateTime bruges til. ArgumentNullException Den sourceTimeZone parameter er null. -eller - destinationTimeZone parameter er null. Jeg håbede, efter formularen og passerer de værdier, til controller-handling, det vil sætte DateTime s tidszone til browseren (EST) snarere end den server host (UTC), men det skete ikke. Dette emne forklarer, hvordan til at konvertere gange fra én tidszone til en anden, samt hvordan til at konvertere DateTimeOffset værdier, der har begrænset tid zone bevidsthed. Når deserialized, disse tider er konverteret til den lokale tid på den maskine, der udfører deserialisering. Så efter konvertering til UTC og gemme til databasen, værdi er 2013-09-17 04:00:00.000, når det virkelig skal være 2013-09-17 08:00:00.000, som browseren er på EST. Hvis dateTime parameter er en ugyldig tid i kilden tidszone, denne metode kaster en ArgumentException.

Derfor dato, fra et udgangspunkt reference, og tiden, fra en start reference, er helt klart det SAMME begreb; tid tilføje ekstra præcision. Du kan også konvertere fra eller til UTC (coordinated Universal Time) ved at kalde ConvertTimeFromUtc og ConvertTimeToUtc metoder. Værdien af Ens ejendom dateTime parameter skal svare til den sourceTimeZone parameter, som nedenstående tabel viser. DateTime.Type værdi sourceTimeZone værdi Metode adfærd DateTimeKind. Den nøjagtige konvertering, som udføres af metode afhænger af den værdi af den første parameter er lidt ejendom, som nedenstående tabel viser. Der er en smule af en indlæringskurve, men hvis du laver noget kompliceret, at det er indsatsen værd. I så fald kan du være nødt til enten at advare dine brugeren, at input tiden er ugyldig, eller du kan spørge dem, hvilke af de to tvetydige gange, de mente. Hvis værten systemets lokale tidszone, der omfatter flere justering af regler, TimeZoneInfo.ConvertTimeToUtc(DateTime) gælder den relevante regel til en bestemt dato og tid. Jeg ønsker ikke, at det gør konverteringen - jeg vil bare have det til at acceptere, at min DateTime streng, der allerede er i UTC.

C# Datetime Uden Tidszone Konvertering

En ansøgning kan ikke længere antage, at alle tidspunkter kan angives i lokal tid, hvilket er den tid, der er tilgængelige fra DateTime struktur. Således er den struktur, der har mere end én ansvar (håndtering af både dato OG klokkeslæt), og er derfor en krænkelse af SRP. Hvis du fortæller nogen, at at møde dig på 1:00 PM, du gør en kæmpe antagelse, at den person, der ved, hvad dagen. For eksempel, en Web-side, der viser den aktuelle tid i den østlige del af Usa er ikke troværdigt, at en kunde i det østlige Asien. Den Dato, der er ejet af en DateTime også DateTime (!), efter således at have en tid misligholdende til 00:00:00:000 så godt. Fordi DateTimeOffset objekter gemme en dato og klokkeslæt-værdi sammen med sine offset fra UTC, de altid repræsentere et bestemt tidspunkt i forhold til UTC. XML serializer altid forudsætter, at DateTime værdier, der er føljeton repræsenterer lokale maskine tid, så det gælder maskinen lokale tidszone forskydning som offset del af XML-encoded tid. DateTimeKind. Uspecificeret Hvis værdien af den første parameter er en tvetydig tid i kilden tidszone, kan det tolkes som en standard tid. Velsagtens, Tidshorisont kan bruges til at repræsentere via konventionen, men det kan være renere at have en Tid objekt, der repræsenterer et punkt inden for en 24 timers periode, og en tidszone. Roll din egen, leve med midnat (eller tid på dagen) eller arbejde med en ToString repræsentation af, hvad du ønsker.