2010-10-27 4 views
1

Pourquoi RWTime donne 1 heure de plusRWTime affiche localtime + 1

#include <rw/rwtime.h> 
#include <rw/rwdate.h> 
#include <rw/rstream.h> 

main(){ 
RWTime t; // Current time 
RWTime d(RWTime::beginDST(1990, RWZone::local())); 
    cout << "Current time:   " << RWDate(t) << " " << t << 
      endl; 
    cout << "Start of DST, 1990: " << RWDate(d) << " " << d << 
      endl; 
} 

Au-dessus de programme affiche:

[email protected]:/home/nmsadm/sapna/cProgS# ./a.out
Current time: 10/27/10 10/27/10 17:08:06
Start of DST, 1990: 04/01/90 04/01/90 03:00:00

Mais date donne:

[email protected]:/home/nmsadm/sapna/cProgS# date
Wed Oct 27 16:08:10 IST 2010

+0

J'ai ajouté un tag « -vague scélérate » - il pourrait aider quelqu'un familiariser avec la bibliothèque pour trouver votre question. – Doug

Répondre

1

Mon sixième sens est picotant, il te Je pense que la réponse a quelque chose à voir avec l'heure d'été ... Je ne sais pas pourquoi, cependant ...

+0

Je pense que c'est une bonne idée - si IST est l'heure normale indienne, il n'y a apparemment pas d'heure avancée, et il semble que la bibliothèque Rogue Wave applique un ajustement de l'heure d'été. – Doug

0

Par défaut, RWZone::local() retournera une implémentation RWZone basée sur les transitions DST nord-américaines. RWZone::os() fournit des transitions DST basées sur l'implémentation RWZone dérivées du fuseau horaire actuel du système. RWZone::local() peut être mis à jour pour utiliser RWZone::os() en utilisant:

RWZone::local(&RWZone::os());