【问题标题】:How to convert a DD-MM-YYYY date format string into a YYYY-MM-DD date format string or into a NSDate object in Objective-C?如何将 DD-MM-YYYY 日期格式字符串转换为 YYYY-MM-DD 日期格式字符串或 Objective-C 中的 NSDate 对象?
【发布时间】:2011-06-19 20:22:39
【问题描述】:

我从 XML 中读取了日期,它返回了日期类似于 DD-MM-YYYY 的字符串。但是当我想将它添加到我的核心数据数据库中时,SQLite 对我进行了错误排序,因此我必须将其转换为日期格式或字符串,例如:YYYY-MM-DD。但是 SQLite 不支持 Date()To_Date() 函数。你能帮助我吗?

【问题讨论】:

    标签: objective-c sqlite nsdate date-format


    【解决方案1】:

    您可以使用 NSDateFormatter 在 Objective 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];
    

    希望这会有所帮助!

    尼克。

    【讨论】:

    • 它适用于我的示例吗?当我必须使用 dateFromString 并且字符串是 DD-MM-YYYY 时?
    • 好问题!我已经发布了我的帖子的更新。我没有测试过这段代码,但希望它能给出这个想法!祝你好运。 N
    • NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"dd-MM-yyyy"]; NSDate *formattedDate = [dateFormatter dateFromString:string]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSString *elmentendo = [dateFormatter stringFromDate:formattedDate];
    • 您确定您的 DD-MM-YYYY 日期在 string 变量中吗?
    • 我猜它不支持 DD-MM-YYYY 格式,因为如果我在 NSDate *date = [dateFormatter dateFromString:stringDate];
    【解决方案2】:

    使用尼克的教程并回答解决方案是:

    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];
    

    【讨论】:

    • 太好了,您找到了解决问题的方法,很高兴能提供帮助!祝你的应用程序的其余部分好运。 N
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多