sql >> Databasteknik >  >> RDS >> Mysql

Hur konverterar man MySQL datetime till NSDate?

Din formatsträng är nära, men du vill ange millisekunderna med SSS också:

[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSX"];

Även Z i din datumsträng står för "Zulu" (dvs. GMT/UTC), så ditt dateFormat ska använda Z eller X utan citattecken så att den korrekt analyserar strängens tidszon. Dessutom, om du bygger strängar från datum, se till att ställa in din tidszon därefter. Du vill också ställa in ditt språk:

NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = enUSPOSIXLocale;
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSX";
formatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];

Se Tekniska frågor och svar QA1480 för mer information.

Du kan också använda den nyare NSISO8601DateFormatter , vilket tar dig ur några av dessa ogräs:

NSISO8601DateFormatter *formatter = [[NSISO8601DateFormatter alloc] init];
formatter.formatOptions = NSISO8601DateFormatWithFullDate | NSISO8601DateFormatWithFullTime | NSISO8601DateFormatWithFractionalSeconds;



  1. gå med kommaavgränsad datakolumn

  2. FEL 1045 (28000):Åtkomst nekad för användaren 'root'@'localhost' (med lösenord:NEJ)

  3. Automatiskt ökande 'id'-värde när du infogar i sqlite

  4. cx_Oracle:Hur kan jag ta emot varje rad som en ordbok?