【问题标题】:How can i convert the string to date and date from string?如何将字符串转换为日期和字符串中的日期?
【发布时间】:2012-02-15 13:45:42
【问题描述】:

我的输入字符串是

NSString *inputString=@"15 February 2012 17:05";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd MMMM YYYY HH:mm"];
NSDate *dateVal = [dateFormat dateFromString:inputString];

NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
[dateFormat2 setDateFormat:@"MM/dd/YYYY HH:mm"];
NSString *outputString = [dateFormat2 stringFromDate:dateVal];
[dateFormat release];
[dateFormat2 release];

我得到了以下日期 输出字符串=12/25/2011 17:05

但应该是 02/15/2012 17:05..我在哪里做错了?

【问题讨论】:

  • 问题出在第一部分(日期字符串的解析)。它将于 2011 年 12 月 25 日返回,但我不知道为什么。

标签: iphone nsdateformatter


【解决方案1】:

日期格式不正确,使用:

[dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"];

大写“YYYY”用于基于“一年中的一周”的日历。

见:unicode Date_Format_Patterns

顺便说一句,dateVal 中的 NSLog 会表明问题出在输入格式上。

【讨论】:

    【解决方案2】:

    您使用了错误的日期格式,也没有必要创建另一个 NSDateFormatter 实例 -

        NSString *inputString=@"15 February 2012 17:05"; 
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
        [dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"]; 
        NSDate *dateVal = [dateFormat dateFromString:inputString];
    
        [dateFormat setDateFormat:@"MM/dd/yyyy HH:mm"];
        NSString *outputString = [dateFormat stringFromDate:dateVal];
    

    【讨论】:

      【解决方案3】:

      您的语言环境是否与您尝试解析的格式相对应?默认情况下 NSDateFormatter 使用当前语言环境。

      【讨论】:

        【解决方案4】:

        输入日期格式应为:

         [dateFormat setDateFormat:@"dd MMMM yyyy HH:mm"];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          • 2020-05-24
          • 1970-01-01
          • 2015-04-27
          • 1970-01-01
          • 2016-11-10
          相关资源
          最近更新 更多