Travailler avec les objets DateTime et les fuseaux horaires en C #
La manipulation précise du fuseau horaire est essentielle lors du développement d'applications qui traitent des dates et des temps entre différentes régions. La structure standard DateTime
en C # offre une prise en charge intégrée limitée pour des fuseaux horaires spécifiques au-delà de la local, de l'UTC et non spécifiés. Pour y remédier, la mise à profit de TimeZoneInfo
fournit une solution plus robuste.
Cet exemple démontre une structure personnalisée DateTimeWithZone
pour gérer les objets DateTime dans un fuseau horaire spécifié:
<code class="language-csharp">public struct DateTimeWithZone { private readonly DateTime utcDateTime; private readonly TimeZoneInfo timeZoneInfo; public DateTimeWithZone(DateTime dateTime, TimeZoneInfo timeZone) { var dateTimeUnspecified = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified); utcDateTime = TimeZoneInfo.ConvertTimeToUtc(dateTimeUnspecified, timeZone); timeZoneInfo = timeZone; } public DateTime UtcTime { get { return utcDateTime; } } public TimeZoneInfo TimeZoneInfo { get { return timeZoneInfo; } } public DateTime LocalTime { get { return TimeZoneInfo.ConvertTime(utcDateTime, timeZoneInfo); } } }</code>
Cette structure stocke la date et l'heure en tant qu'UTC DateTime
en interne. Il offre des propriétés pour accéder à l'heure UTC, le TimeZoneInfo
associé et le temps local dans la zone spécifiée. Remarquez l'utilisation de TimeZoneInfo
au lieu de la classe TimeZone
plus ancienne pour une précision et une manipulation améliorées de l'heure d'été.
En utilisant cette structure DateTimeWithZone
, les développeurs peuvent créer des objets DateTime
représentant des fuseaux horaires spécifiques (par exemple, PST) pour les tests ou le traitement des données, garantissant des résultats cohérents, quel que soit le fuseau horaire local du système. Cette approche est cruciale pour les applications nécessitant une conscience précise du fuseau horaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!