Mám malý problém, keď dostanem odpoveď od spoločnosti Instragm, dostanem tento formát dátumu:
"created_time" = 1361964707;
čo to sakra znamená? a najmä ako to môžem naformátovať pomocou NSdataFormatter?
Hľadám spôsob, ako formátovať takýto dátum.
"created_time": "Wed Dec 01 17:08:03 +0000 2010"
Vďaka
odpovede:
4 pre odpoveď č. 1Počítače zvyčajne počítajú dátumy ako počet sekúnd od nejakého ľubovoľného bodu v čase („epochálny dátum“.) Na presnosť za sekundu môžete použiť čísla s pohyblivou rádovou čiarkou.
Dátum epochy UNIX je polnoc, január 1970 v UTC. (Stredný čas AKA Greenwich.)
Obdobie pre Mac OS a iOS je prvé polnoci 1. januára 2001.
Dátum epizódy Unix je pomerne bežným štandardom výmeny údajov na internete. Moja stávka je, že ide o dátum Unix.
NSDate má metódy na prevod medzi týmito „počtom sekúnd“ dátumov a objektmi NSDate:
+[NSDate dateWithTimeIntervalSince1970:] //Unix Epoch to NSDate
+[NSDate dateWithTimeIntervalSinceReferenceDate:] //Mac * iOS Epoch to NSDate
-[NSDate timeIntervalSince1970] //Unix epoch value for an NSDate
-[NSDate timeIntervalSinceReferenceDate] //Mac & iOS epoch value for an NSDate
Mali by ste byť schopní vziať tento dátum a použiť hotimeIntervalSince1970 a previesť ho na NSDate. Nezabudnite, že dátum, kedy sa vrátite, bude v strednom časovom limite Greenwich a budete ho musieť previesť do miestneho časového pásma.
Tento kód zobrazí tento dátum ako NSDate v UTC:
NSTimeInterval interval = 1361964707.0;
NSDate *aDate = [NSDate dateWithTimeIntervalSince1970: interval];
NSLog(@"Date = %@", aDate);
Mám výsledok
Dátum = 2013-02-27 11:31:47 +0000
Vzhľadom na to, že ide o dátum v roku 2013, stavím sa, že je správny.
5 pre odpoveď № 2
Je to unixová časová pečiatka (http://en.wikipedia.org/wiki/Unix_time).
Konvertujete ju na NSDate pomocou [NSDate dateWithTimeIntervalSince1970:];
akonáhle je to hotové, môžete použiť NSDateFormatter na to.