Je vais en colère avec, probablement, un problème stupide. P>
J'ai 3 cordes: année, mois et jour. Je dois avoir une date dans le bon format basé sur CurrentLocale, alors c'est-à-dire si l'actuelLocale LocalIdentifier est EN_US, mon dateformat devrait être: MMM / DD / AAAA P>
Si c'est FR_FR, DateFormat devrait être DD / MMM / AAAA P>
Je ne pense pas que la seule façon de le faire est d'obtenir actuelLocale LocalIdentifier et de commencer avec un tas de si alors. P>
Merci d'avance. P>
max p>
6 Réponses :
Regardez les NsdatEcomponents pour créer un NSDate, puis utilisez NSDateformatter pour le formater. NsdateFormatter utilise les normes locales actuelles pour formater les dates, basée sur le style de format (par exemple,
nsdateformattermediumstyle code>). p>
Merci beaucoup. Nsdatecomenents a aidé.
Si je comprends votre question, vous souhaitez définir votre Nsdateformatter code> sur la localisation de l'appareil de l'utilisateur. Pour cela, vous pouvez simplement faire quelque chose comme ceci:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setLocale:[NSLocale currentLocale]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
-(NSString *) stringFromDate:(NSDate *) date{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setLocale:[NSLocale currentLocale]]; NSString *dateString = [dateFormatter stringFromDate:date]; [dateFormatter release]; return dateString; } -(NSDate *) dateFromString:(NSString *) dateInString{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setLocale:[NSLocale currentLocale]]; NSDate *dateFromString = [dateFormatter dateFromString:dateInString]; [dateFormatter release]; return dateFromString; } I hope this helps.
Si vous souhaitez avoir plus de flexibilité sur le format que les formats utilisables avec SetDatestyle, consultez ma réponse à une question similaire: https://stackoverflow.com/a/20219610/1896336 p>
dans SWIFT 3:
let formatter = DateFormatter() formatter.dateStyle = .medium formatter.timeStyle = .none formatter.locale = Locale.current let date = Date() let dateString = formatter.string(from: date) print(dateString)
Consultez ce lien pour comprendre comment nsdateformatter code> basé sur http://www.codingexplorer.com/swiftly-getting-human-raleadable-date-nsdateformatter/ p>