2010-08-01 5 views
8

J'ai des problèmes pour afficher l'heure dans ce format: HH: mm: ss. Peu importe ce que j'essaie, je ne l'obtiens jamais dans ce format.Affichage de l'heure actuelle dans ce format: HH: mm: ss

Je veux l'heure dans la culture des Pays-Bas qui est "nl-NL".

Ce fut l'un de mes (bien que j'ai oublié de garder le comte) essayer 1000e:

CultureInfo ci = new CultureInfo("nl-NL"); 

string s = DateTime.Now.TimeOfDay.ToString("HH:mm:ss", ci); 

Qu'est-ce que je fais mal?

+0

TimeSpan a une méthode de ToString() wimpy. Changé dans .NET 4.0, pas pour le mieux. Je perds juste "TimeofDay" Darin l'a bien sur –

Répondre

6

Vous devez utiliser la classe TimeZoneInfo, voici comment afficher l'heure actuelle dans le fuseau horaire, heure normale de l'Est HH: mm: ss:

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); 
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss"); 

pour trouver tous les fuseaux horaires disponibles, vous pouvez utiliser

TimeZoneInfo.GetSystemTimeZones(); 

en regardant à travers la valeur retournée de ce qui précède, l'identifiant de la zone de temps dont vous avez besoin (Amsterdam je suppose) est appelé Heure normale de l'Europe de W.:

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time"); 
string s = TimeZoneInfo.ConvertTime(DateTime.Now, timeZone).ToString("HH:mm:ss"); 
+0

Merci thebunringmonk! Cela a fait l'affaire.Je ne peux pas croire combien de temps je cherchais une solution pour résoudre ce problème! – Yustme

+0

@Yustme - Pas de problèmes, content que je pourrais aider ;-) La mondialisation n'est pas si bien couverte que pas beaucoup de nous le faire, je suis tombé sur un bon article MSDN il ya un certain temps, mais je n'arrive pas à trouver le lien maintenant, je publierai une mise à jour si je le trouve à nouveau. – theburningmonk

15
string s = DateTime.Now.ToString("HH:mm:ss"); 
+0

Salut, J'ai essayé celui-là aussi, il ajoute les trucs "am/pm" derrière ça Comment puis-je éviter cela? – Yustme

+2

@Yustme: Ne pas confondre 'DateTime.Now.TimeOfDay' et' DateTime.Now' – abatishchev

1

TimeOfDay est un TimeSpan, qui a seulement une ToString() sans paramètres. Utilisez Darin's solution ou un échantillon de MSDN documentation pour TimeSpan.ToString()

+0

Voici le lien: http://msdn.microsoft.com/fr-fr/library/system.datetime_properties.aspx – abatishchev

Questions connexes