NSDateFormatter (encore ?)

LarmeLarme Membre
février 2013 modifié dans Objective-C, Swift, C, C++ #1
Bonsoir tout l'monde...



Je vais m'arracher les cheveux sur ce problème, c'est pas possible...

En gros, je lis une donnée horaire sur une appareil distant, et le remet à  l'heure si besoin.



Voici ce que j'ai :






<br />
[color=#E40000][font=Menlo][size=2][color=#7c1fae]NSString[/color][color=#000000] *theDate = [/color]@&quot;000000000715&quot;[color=#000000]; //Date de l&#39;appareil[/color][/size][/font][/color]<br />
<br />
[color=#E40000][font=Menlo][size=2][color=#460085]NSLog[/color][color=#000000]([/color]@&quot;Date String: %@&quot;[color=#000000], theDate);[/color][/size][/font][/color]<br />
<br />
[color=#7C1FAE][font=Menlo][size=2]NSDateFormatter[color=#000000] *dateFormatter = [[[/color]NSDateFormatter[color=#000000] [/color][color=#460085]alloc[/color][color=#000000]] [/color][color=#460085]init[/color][color=#000000]];[/color][/size][/font][/color]<br />
[color=#460085][font=Menlo][size=2][color=#000000][dateFormatter [/color]setTimeZone[color=#000000]:[[/color][color=#7c1fae]NSTimeZone[/color][color=#000000] [/color]localTimeZone[color=#000000]]];[/color][/size][/font][/color]<br />
[font=Menlo][size=2][dateFormatter [color=#460085]setDateFormat[/color]:[color=#e40000]@&quot;yyMMddHHmmss&quot;[/color]];[/size][/font]<br />
<br />
<br />
<br />
[font=Menlo][size=2][color=#7c1fae]NSDate[/color] *now = [[color=#7c1fae]NSDate[/color] [color=#460085]date[/color]];[/size][/font]<br />
[font=Menlo][size=2][color=#460085]NSLog[/color]([color=#e40000]@&quot;Now: %@&quot;[/color], [dateFormatter [color=#460085]stringFromDate[/color]:now]);[/size][/font]<br />
[font=Menlo][size=2][color=#7c1fae]NSDate[/color] *dateSouhaitee = [[[color=#7c1fae]NSDate[/color] [color=#460085]alloc[/color]] [color=#460085]init[/color]];[/size][/font]<br />
[font=Menlo][size=2]dateSouhaitee = [dateFormatter [color=#460085]dateFromString[/color]:theDate];[/size][/font]<br />
[color=#E40000][font=Menlo][size=2][color=#460085]NSLog[/color][color=#000000]([/color]@&quot;dateSouhaitee : %@&quot;[color=#000000], [/color]dateSouhaitee[color=#000000]);[/color][/size][/font][/color]<br />
[font=Menlo][size=2][color=#cd00a5]float[/color] difference = [dateSouhaitee [color=#460085]timeIntervalSinceDate[/color]:now];[/size][/font]<br />
[color=#E40000][font=Menlo][size=2][color=#460085]NSLog[/color][color=#000000]([/color]@&quot;Difference: %f&quot;[color=#000000], difference);[/color][/size][/font][/color]<br />
<br />




En debug, j'ai :



[b]BlueticDate : (null)[/b][/size][/font]<br />
[font=Menlo][size=2]<br />
[b]Now: 130213212919[/b][/size][/font]<br />
[b]Difference: 0.000000[/b]




Pourquoi est-ce que ce fichue DateSouhaitee est null ?

Réponses

  • Une petite remarque en passant, c'est pas la peine de créer une date dans dateSouhaitee si c'est pour l'écrabouiller juste après.



    dateSouhaitee est créé à  partir d'une string theDate dont le mois et le jour valent 00. Pour moi c'est normal que ça ne marche pas.
  • Maintenant que tu le soulignes, un mois en 00 ou un jour en 00, ça pose en effet problème...

    Manquais de recul >_<

    Merci.
  • Bon, pour ceux qui auraient ce soucis (ça pourrait toujours les aider), voici ce que je fais :



    - Récupération de l'heure de l'appareil distant

    - Récupération de l'heure courante du iDevice

    - Formattage de l'heure de l'appareil distant

    - Si (heureDistanteViaFormattage est nulle ou ValeurAbsolue(heureDistanceViaFormmattage - heureActuelle) > X)

    On lui envoie l'heure



    Donc voilà  comment je passe outre ce cas.

    X étant la différence autorisée.
Connectez-vous ou Inscrivez-vous pour répondre.