La data in cui torni da Twitter è in questo formato Fri Aug 07 12:40:04 +0000 2009
. Sono in grado di assegnare il valore a un NSDate senza problemi. Tuttavia, quando cerco di utilizzare NSDateFormatter, mi viene restituito un zero. Cosa mi manca?Come posso impostare una stringa di data da Twitter a un NSDATE
risposta
Se l'oggetto associato alla chiave @ "created_at" è un oggetto NSDate valido, questo codice dovrebbe funzionare.
Tuttavia, suppongo che in realtà sia un NSString. Se è così, produrrà il comportamento che stai descrivendo.
Se ho ragione, il frammento di codice qui sopra assegna un oggetto NSString a un riferimento NSDate. NSDictionary restituisce gli oggetti 'id' non tipizzati, quindi il compilatore non ti darà un avviso di mancata corrispondenza di tipo.
È necessario utilizzare NSDateFormatter per analizzare la stringa in un NSDate (vedere dateFromString :).
Prima di tutto, a cosa serve stringFromDate:
? Questo è se hai già un NSDate e vuoi creare una stringa per rappresentarlo.
Inoltre, quando si utilizza il programma di formattazione della data, si fornisce una stringa di formato che non corrisponde alla stringa di data che si sta tentando di interpretare.
Modificare la stringa di formato in modo che corrisponda alle stringhe di data e utilizzare dateFromString:
anziché stringFromDate:
(con le modifiche di operatore alle dichiarazioni di variabile) e dovrebbe funzionare.
Ho avuto la stessa domanda e non ho potuto risolverlo con le risposte sopra citate. ecco cosa ha funzionato per me:
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
//Wed Dec 01 17:08:03 +0000 2010
[df setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZZ"];
NSDate *date = [df dateFromString:[[tweets objectAtIndex: storyIndex] objectForKey: TWITTER_CREATED_AT_JSON_KEY]];
[df setDateFormat:@"eee MMM dd yyyy"];
NSString *dateStr = [df stringFromDate:date];
dove tweets
è un NSMutableArray
riempito con NSDictionary
oggetti, storyIndex
essendo il valore di riga int (in tableView), e TWITTER_CREATED_AT_JSON_KEY
essendo una costante NSString
con valore created_at
. utilizzare dateStr
ovunque si desideri visualizzare la data
Sembra simile, Twitter cambia il formato ancora e ancora. Questi lavori per me ora. Non dimenticare di impostare la locale.
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
//Mon, 29 Oct 2012 12:24:50 +0000
[df setDateFormat:@"EEE, dd LLL yyyy HH:mm:ss ZZZ"];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
NSDate *date = [df dateFromString:[element valueForKey:@"created_at"]];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
NSString *dateStr = [df stringFromDate:date];
[element valueForKey:@"created_at"]
- data da Twitter
Sopra niente ha funzionato per me - Prova questo per Twitter: (Ho anche incluso un bel nsdate category per una migliore mostra la data
lbl = (UILabel *)[cell viewWithTag:16];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
//"created_at": "Tue Jul 09 07:45:01 +0000 2013",
[df setDateFormat:@"EEE MMM d HH:mm:ss ZZZZ yyyy"];
NSTimeInterval timeIntveral = [[df dateFromString:[[_twitterArray objectAtIndex:indexPath.row] objectForKey:@"created_at"]] timeIntervalSince1970];
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:timeIntveral];
//will work if you added the nsdate category, linked above
NSString *ago = [date timeAgo];
NSLog(@"Output is: \"%@\" %.f", ago,timeIntveral);
lbl.text = ago;
Spero che questo aiuti !
- 1. Come posso inizializzare una data su NSdate?
- 2. Confronto di un NSDate a [Data NSData]
- 3. Stringa relativa da NSDate
- 4. Ottenere data Parti da un valore NSDate
- 5. Conversione di stringa da MM/GG/AAAA a NSDate
- 6. Come posso impostare la data di UIDatePicker in un'altra data?
- 7. Come convertire stringa da data a stringa in Swift iOS?
- 8. Come posso impostare solo il tempo nella variabile NSDate?
- 9. Come creare un oggetto data NSDate?
- 10. Scegliere un file a partire da una data stringa
- 11. descrizione Stringa di NSDate
- 12. Creazione di una data futura a Swift con NSDate()
- 13. NSDate - Impostazione di una data futura
- 14. NSDate con componente data da uno e componente orario da un altro NSDate
- 15. NSString a NSDate
- 16. Come impostare l'ora su NSDate?
- 17. Data a stringa <-> Stringa data
- 18. Come posso impostare una data su NULL in Yii?
- 19. Come aggiungere un numero di settimane a un NSDate?
- 20. Sistema operativo iPhone: come posso creare un NSDate per una data specifica?
- 21. Come convertire una stringa di data UTC in NSDate in Swift
- 22. Come posso ottenere la prossima data usando NSDate?
- 23. Come si converte da NSString a NSDate?
- 24. SWIFT: Come posso aggiungere ore all'oggetto NSDate
- 25. Come aggiungere un intervallo di tempo a un NSDate?
- 26. Come impostare UIDatePicker su una data iniziale diversa da "Oggi"
- 27. Come si sottraggono le ore da un NSDate?
- 28. IOS come impostare il formato della data
- 29. Convertire la descrizione di un NSDate in un NSDate?
- 30. Come posso aggiungere una stringa formattata a una stringa esistente?
Grazie @binnyb. Twitter ha modificato il formato ora "Mer, 28 dic 2011 16:48:59 +0000", quindi il primo formato dovrebbe essere: [df setDateFormat: @ "eee, dd MMM y yyy HH: mm: ss ZZZZ "]. – Motasim
grazie ho apportato la modifica – binnyb
Sembra che Twitter abbia cambiato di nuovo il formato, in '@" eee MMM dd HH: mm: ss ZZZZ yyyy "' (o 'Tue Feb 08 15:54:03 +0000 2011') – lxt