Comment dois-je énumérer tous les fuseaux horaires .NET?
Je voudrais avoir une liste de tous les fuseaux horaires disponibles sur une Machine Windows. Comment puis-je faire dans .NET?
Que je sais sur les TimeZoneInfo.GetSystemTimeZones méthode, mais il ne renvoie qu'sélectionné de la zone(s)
DateTimeOffset current = DateTimeOffset.Now;
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("You might be in the following time zones:");
foreach (TimeZoneInfo timeZoneInfo in timeZones)
{
//Compare offset with offset for that date in that time zone
if (timeZoneInfo.GetUtcOffset(current).Equals(current.Offset))
{
Console.WriteLine(" {0}", timeZoneInfo.DisplayName);
}
}
- La souffrance de la cut-n-coller-itis? 🙂 Vous avez déjà une itération à travers l'ensemble de l'énumération, mais le filtrage de loin les compensations qui n'est pas le même que l'actuel avec le if.
- J'ai négligé le cas dans le code 🙁
Vous devez vous connecter pour publier un commentaire.
Non, ce n'est pas le cas, elle renvoie à chaque fois la zone de la machine Windows sait à ce sujet (dans mon installation, c'est 91). Le
if
déclaration que vous avez là est qu'est-ce que la limitation de votre sortie. L'enlever, mais laisser laConsole.WriteLine
partie, et vous verrez tous 91 (ou alors) de fuseaux horaires.par exemple
Qui doivent écrire 91 fuseaux horaires de votre console.
timeZones.Count
= 135Votre code fonctionne très bien pour moi. Voici le résultat sur ma boîte:
C'est tout ceux avec le même décalage en ce moment, qui est ce que votre code affiche clairement - si vous souhaitez tous les fuseaux horaires, il suffit de retirer le "si" partie, Robert dit.
Si vous pensez que vous devriez voir plusieurs zones, pourriez-vous nous dire quel fuseau horaire vous êtes donc nous pouvons travailler sur ce que les autres devraient l'être affiché?
Cette méthode est utilisée pour lier tous les fuseaux horaires dans Dev express Déroulant.
J'espère que ça aidera Quelqu'un.
Si vous avez envie d'une sortie json à partir d'un WebAPI appel:
Ensuite l'utiliser dans WebAPI:
De sortie: