A DateTime a une Kind qui est l'un des DateTimeKind.Local, DateTimeKind.Utc ou DateTimeKind.Unspecified, de sorte que même si elle a des informations de fuseau horaire, il est trop limité pour spécifier un autre décalage.
A DateTimeOffset peut contenir d'autres compensations, il peut mieux convenir à vos besoins:
Module Module1
Sub Main()
Dim hereAndNow = DateTime.Now
Dim utc = DateTime.UtcNow
Dim noTzi = Date.SpecifyKind(utc, DateTimeKind.Unspecified)
Dim inIndia As New DateTimeOffset(noTzi, TimeSpan.FromHours(5.5))
Console.WriteLine(hereAndNow.ToString("yyyy-MM-dd HH:mm:ss K"))
Console.WriteLine(utc.ToString("yyyy-MM-dd HH:mm:ss K"))
Console.WriteLine(inIndia.ToString("yyyy-MM-dd HH:mm:ss 'GMT' K"))
Console.ReadLine()
End Sub
End Module
Sorties:
2017-08-23 11:36:55 +01: 00
23/08/2017 10:36:55 Z
2017-08-23 10:36:55 GMT +05: 30
J'ai dû définir le type de la variable DateTime utc
à DateTimeKind.Unspecified
pour pouvoir l'utiliser dans le constructeur DateTimeOffset.
Vous devez utiliser le K custom format specifier pour affichant les informations de fuseau horaire.
Voulez-vous quelque chose où vous pouvez spécifier le fuseau horaire (le "Construire" dans le titre), ou voulez-vous simplement * afficher * le fuseau horaire avec le datetime? –