8
votes

Formatage d'un objet DateTime de .NET dans un NSDate pour l'objectif-c

Je travaille avec une API qui renvoie un objet DateTime .NET dans mon application iOS. Je suis un peu confus à ce qui se passe, la dateTime a l'air bien quand il quitte l'API, mais lorsqu'il est arrivé à JSON et se trouve comme une chaîne qui ressemble à ceci:

/Date(1303884000000-0600)/


0 commentaires

3 Réponses :


2
votes

Essentiellement ce que vous obtenez, il y a des millisecondes à partir du 1er janvier 1970 UTC, avec le décalage de -0600 étant le décalage du fuseau horaire. Jetez un coup d'œil à ce blog post http: // weblogs.asp.net/bleroy/archive/2008/01/18/dates-and-json.aspx

Vous devrez probablement écrire un format Nsdateformatère personnalisé pour gérer une date de ce format, ou vous pouvez le formater dans .NET (plus facile), sortir une chaîne de JSON, puis utilisez une norme standard.


4 commentaires

Je ne peux pas comprendre pourquoi il y a 3 zéros supplémentaires à la fin de la chaîne. Utilisation de Unix Time Converter avec "1303884000000", j'ai la mauvaise date. Si je me débarrasse des 3 zéros et convertir avec "1303884000", j'ai la bonne date. Quels sont ces zéros supplémentaires pour (ou de) ??


Oh, je suppose que c'est des millisecondes depuis 1970 au lieu de quelques secondes seulement. Donc, pour analyser cela comme un nsdate, je devrais dépenser tous les personnages, puis comparer le temps depuis 1970 ??


Vous pouvez le faire de cette façon. Vous pouvez ensuite ajouter / soustraire des heures pour régler le fuseau horaire si nécessaire. Comme je l'ai dit précédemment, vous voudrez peut-être faire un autre formatage sur le côté .NET car il est probablement plus facile de cette façon :)


Ahh problème résolu et fonction pour analyser! Stackoverflow.com/Questtions/1757303/...



12
votes

de Dates JSON PARSING sur iPhone J'ai trouvé la fonction suivante pour être parfaite: xxx


1 commentaires

Notez que cela ne gère pas un décalage de fuseau horaire.



4
votes

La bibliothèque de resTKIT a une sous-classe Nsdateformatter pour juste ceci. Jetez un coup d'œil ici pour inspiration:

https://github.com/restkit/restkit/ blob / maître / code / support / rkdotnetdateform.h https://github.com/restkit/restkit/blob/master /Code/support/rkdotNetDateDateDorm.m


1 commentaires

Cela devrait être la réponse à la question