NSDatePicker sans gestion de la TimeZone

RocouRocou Membre
08:56 modifié dans API AppKit #1
Bonjour,

Je n'arrive pas à  désactiver la gestion des fuseaux horaires dans mon NSDatePicker. Est-ce seulement possible?

Dans mon code, je récupère une heure au format NSString: @00:00:00
Je voudrais initialiser mon NSDatePicker avec cette chaine.

Mais rien à  faire, il me la convertit et ne veut pas me la restituer telle quelle.

Voici mon code. Dans cet exemple où j'initialise ma date avec l'heure GMT, le NSDatePicker va m'afficher 01:00:00 au lieu de 00:00:00
Et évidemment, quand on passera à  l'heure d'été, il m'affichera 02:00:00
Or, je veux qu'il m'affiche tout le temps et quelque soit le lieu 00:00:00

Je pourrais passer par un NSTextView mais j'ai besoin du côté graphique du NSDatePicker.

<br />&nbsp; &nbsp; NSString *heureChantier = @&quot;00:00:00&quot;;<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; NSString *chaineDate = [[NSDate date] descriptionWithCalendarFormat: @&quot;%Y-%m-%d&quot; timeZone:nil locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; chaineDate = [chaineDate stringByAppendingString:@&quot; &quot;];<br />&nbsp; &nbsp; chaineDate = [chaineDate stringByAppendingString:heureChantier];<br />&nbsp; &nbsp; chaineDate = [chaineDate stringByAppendingString:@&quot; +0000&quot;];	<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; NSDate *maDate = [[NSDate alloc] initWithString:chaineDate]; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; <br />&nbsp; &nbsp; [horloge setDateValue:maDate]; //horloge est donc mon NSDatePicker<br /><br />

Réponses

  • RocouRocou Membre
    janvier 2012 modifié #2
    Encore plus fort!

    Un NSDatePicker textual n'affiche pas la même heure qu'un NSDatePicker graphical alors qu'ils sont initialisés avec la même date!  :'(
    Le graphical affiche une heure de plus.

    Pourtant, sous IB, les option sont les mêmes.
  • AliGatorAliGator Membre, Modérateur
    janvier 2012 modifié #3
    Tu as configuré la timezone de ton NSDatePicker ?
    [tt]-[NSDatePicker setTimeZone:][/tt]

    (Je dis ça moi... ça fait une éternité que j'ai pas fait de dev OSX me concentrant sur iOS, j'ai juste trouvé ça vite fait dans la doc hein...)
  • RocouRocou Membre
    08:56 modifié #4
    dans 1326203300:

    Tu as configuré la timezone de ton NSDatePicker ?
    [tt]-[NSDatePicker setTimeZone:][/tt]


    Merci de m'avoir répondu, j'ai cru avoir été mis au ban  :D

    J'ai essayé ceci: [horloge setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

    D'une part, ça ne fonctionne pas avec NSDatePicker graphical (aucun effet)
    d'autre part, ça semblait fonctionner sur le textual mais quand je tape le chiffre des heure sur mon clavier, le curseur étant sur le NSDatePicker, ce dernier corrigeait ma frappe à  la volée!

  • devulderdevulder Membre
    08:56 modifié #5
    <br />NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar ] autorelease]; <br />[horloge setTimeZone:[calendar timeZone]];<br />[horloge setCalendar:calendar];<br />
    


    Vu sur le net, a tester....

    tiens nous au courant.


  • RocouRocou Membre
    08:56 modifié #6
    dans 1326204642:

    <br />NSCalendar *calendar = [[[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar ] autorelease]; <br />[horloge setTimeZone:[calendar timeZone]];<br />[horloge setCalendar:calendar];<br />
    


    Vu sur le net, a tester....

    tiens nous au courant.


    Merci mais cela n'a aucun effet. Quelque soit le calendrier par ailleurs. J'ai essayé NSChineseCalendar, aucun effet.
    (NB: autorelease génère une erreur de compilation)
  • RocouRocou Membre
    janvier 2012 modifié #7
    Bon, une journée la dessus, c'est assez.
    Je vais tout réécrire mais c'est bien dommage. Enfin, bon.

    Edit: J'ai reçu une aide précieuse, mon bout de code doit être modifié de la façon suivante:

    &nbsp;  chaineDate = [chaineDate stringByAppendingString:@&quot; &quot;];<br />&nbsp; &nbsp; chaineDate = [chaineDate stringByAppendingString:heureChantier];<br />&nbsp; &nbsp; [b]chaineDate = [chaineDate stringByAppendingString: [[NSDate date] descriptionWithCalendarFormat: @&quot; %z&quot; timeZone:nil locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]]&nbsp;  ];[/b]<br />
    


    Je sais, ça parait tout con et tout à  fait normal  ::)
Connectez-vous ou Inscrivez-vous pour répondre.