2008-11-19 7 views
1

Mon application MFC a un dialogue avec un sélecteur de dates. Lorsque j'initialise ce dialogue, j'ai besoin d'appeler CDateTimeCtrl :: SetTime() et j'essaie de décider quel argument lui donner. J'ai un tableau d'entiers représentant une année, un mois, un jour, une heure et une minute en UTC. Voici le bit important: le sélecteur de date doit afficher l'heure en UTC, pas l'heure locale. Et quand j'appelle GetTime() plus tard, je dois être sûr que ce que je reçois peut être traité comme UTC.Comment conserver UTC dans un CDateTimeCtrl?

La fonction SetTime() a trois remplacements: le premier prend un CTime *, le second prend un COleDateTime & et le troisième prend un LPSYSTEMTIME. Il semble que le constructeur de CTime convertit automatiquement son entrée en heure locale et que celle de COleDateTime ne le fait pas. Est-ce vrai? Et je pense que LPSYSTEMTIME n'est pas vraiment conçu pour être construit à la main? Alors, est-ce mon meilleur moyen de construire un COleDateTime à partir de mon tableau et de le passer à SetTime? Étant donné que je suis à Londres en hiver, comment puis-je tester ces choses pour m'assurer qu'elles se comportent comme je le veux? Y at-il un moyen de prétendre temporairement que je suis à Chicago et de vérifier que cela n'affecte pas mon sélecteur de date?

Répondre

3

J'ai travaillé il y a longtemps sur quelque chose de similaire. Je crois que j'ai utilisé le COleDateTime. Le véritable avantage était qu'il ne se convertit pas automatiquement en heure locale.
Si vous voulez vraiment tester des choses, essayez de régler votre fuseau horaire à l'heure de Sydney car nous sommes en train de passer à l'heure d'été (UTC + 11). Le changement dans les hémisphères va vous tester!

Questions connexes