سؤال

قد يكون هذا بسيطًا. لقد بحثت ، لم يتم العثور عليها بعد.

كيف يمكنني تحويل nsstring @"20100216190205" إلى nsstring من التنسيق @"yyyy-mm-dd hh: mm: ss".

IE: @"2010-02-16 19:02:05"

تعديل:أردت تجنب استخدام NSDateFormatter ليكون أكثر عاما ، لحالات أخرى.

هل كانت مفيدة؟

المحلول

بحتة كتمرين في رمز الكتابة:

NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);

لكني أوافق على ذلك: اذهب بسهولة على نفسك ، واستخدم موعدًا لهذا الغرض.

نصائح أخرى

يمكنك استخراج كل فرعية وتحويلها إلى أعداد صحيحة (-intValue)، ثم استخدام NSDateComponents لتحويلها إلى تاريخ. وهو أكثر إزعاجًا من استخدام NSDateFormatter.

في حالتك ، يجب ضبط تنسيق NSDOthformatter yyyyMMddHHmmss قبل الاتصال -dateFromString:, ، بمعنى آخر

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....

ستحتاج إلى ضبط الخاص بك formatterتنسيق ل yyyymmddhhmmss لتحليل السلسلة التي لديك في مثالك. ستحتاج إما إلى إنشاء تنسيق جديد أو تعديل تنسيق التنسيق الأصلي لدمجذ أكثر جاذبية بصريًا تريده (@"yyyy-MM-dd HH:mm:ss").

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top