【问题标题】:How to make date conversion?如何进行日期转换?
【发布时间】:2012-04-23 14:59:15
【问题描述】:

我在字符串格式广告“2012-04-11T07:51:10+0000”中获取日期,我想将其转换为 NSDate 为“11-04-2012”。我不明白如何为此使用“setDateFormat”。

这就是我正在做的—— [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'+'zzzz"];

请帮忙。

无论我会得到什么 NSDate,我都想再次转换为字符串,即。仅 2012 年 11 月 4 日。 我在ggl上搜索过。但没有令人满意的结果:(

请帮忙。

【问题讨论】:

    标签: iphone nsdateformatter


    【解决方案1】:

    以下是如何解析字符串以生成日期:

    NSString *dateString = @"2012-04-11T07:51:10+0000";
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyy-MM-dd'T'HH:mm:ssZ";
    NSDate *date = [formatter dateFromString:dateString];
    NSLog(@"Date: %@", date);
    

    现在您可以生成日期的新字符串表示形式,如下所示:

    formatter.dateFormat = @"dd-MM-yyyy";
    NSString *newDateString = [formatter stringFromDate:date];
    NSLog(@"New string: %@", newDateString);
    // 11-04-2012
    

    您使用的dateFormat 的问题在于您不必转义所有符号,例如'MM',并且zzzz 不是解析+0000 类型时区的正确符号。

    查看此documentation 了解更多信息。

    【讨论】:

    • 但是如何只得到日期部分呢?
    • 什么意思?您可能正在寻找newDateString
    【解决方案2】:

    试试这个代码。

    NSString *dateStr = @"Wed, 22 Jun 2011 12:36:00 +0100"; // change value base on your requirement.
    
        // Convert string to date object
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setDateFormat:@"EEE, d MMM yyyy HH:mm:ss ZZZ"]; // Change format base on dareStr.
        NSDate *date = [dateFormat dateFromString:dateStr];  
    
        // Convert date object to desired output format
        [dateFormat setDateFormat:@"EEE, MMM d YYYY"]; // Change format base on your output requirement
        dateStr = [dateFormat stringFromDate:date];
        NSLog(@"Date -- %@",dateStr);
        [dateFormat release];
    

    【讨论】:

    • 这是为了从日期字符串中获取所需的日期。
    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2017-11-02
    • 2020-06-25
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多