如何将DD-MM-YYYY日期格式字符串转换为YYYY-MM-DD日期格式字符串或Objective-C中的NSDate对象?

时间:2011-02-02 09:26:55

标签: objective-c sqlite nsdate date-format

我已经从XML读取了日期,它给了我一个日期就像DD-MM-YYYY的字符串。但是当我想将它添加到我的核心数据数据库时,SQLite将我错误排序,因此我必须将其转换为日期格式或字符串:YYYY-MM-DD。但SQLite不支持Date()To_Date()函数。你能帮助我吗?

2 个答案:

答案 0 :(得分:9)

您可以使用NSDateFormatter格式化目标C中的日期。

这是一个快速的例子,它可能不会完全符合您的要求,但应该给出一些指示:

// Convert my dd-mm-yyyyy string into a date object
NSString *stringDate = @"01-02-2011";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];

NSDate *date = [dateFormatter dateFromString:stringDate];

// Convert my date object into yyyy-mm-dd string object
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *formattedStringDate = [dateFormatter stringFromDate:date];

[dateFormatter release];

希望这有帮助!

尼克。

答案 1 :(得分:1)

使用Nick的教程并回答解决方案:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd.MM.yyyy"];

        NSDate *date = [dateFormatter dateFromString:@"01.02.1989"];

        NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init];
        // Convert my date object into yyyy-mm-dd string object
        [dateFormatter1 setDateFormat:@"yyyy-MM-dd"];
        NSString *formattedStringDate = [dateFormatter1 stringFromDate:date];

        [dateFormatter release];
        [dateFormatter1 release];
        NSLog(formattedStringDate);

        objektObrat.dateOfObrat = [[NSString alloc] initWithString:formattedStringDate];