【问题标题】:Not getting the correct date from string in iOS [duplicate]没有从 iOS 中的字符串中获取正确的日期 [重复]
【发布时间】:2013-07-09 15:31:33
【问题描述】:

我正在尝试从按钮获取日期“30/06/2013”​​:

我尝试了这段代码,但我得到了日志:2013-01-04 22:00:00 +0000:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];

NSDate *date = [formatter dateFromString:dateBtn.titleLabel.text];
NSLog(@"date %@",date);

在应用程序中我得到了这个日期“05/01/2013”​​:

我也试过这段代码,但没有用:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"he_IL"];
[dateFormat setLocale:locale];
[dateFormat setDateFormat:@"dd/MM/YYYY"];
NSTimeInterval interval = 5 * 60 * 60;
NSDate *date1 = [dateFormat dateFromString:dateBtn.titleLabel.text];
date1 = [date1 dateByAddingTimeInterval:interval];

请注意,我使用的是希伯来语语言环境。

【问题讨论】:

  • 试试yyyy 而不是YYYY

标签: ios objective-c nsdate nsdateformatter


【解决方案1】:

看看Apple's official documentation on date formatters。请注意格式在不同平台和版本之间略有不同。

还要注意 yyyy 和 YYYY 的区别。

【讨论】:

    【解决方案2】:

    将日期格式设置为“dd/MM/yyyy”

        NSString *originalDate = @"30/06/2013";
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"dd/MM/yyyy"];
    
        NSDate *date = [formatter dateFromString:originalDate];
        NSLog(@"date %@",date);
    

    来自@fzwo苹果链接的解释

    它使用 yyyy 来指定年份组件。一个常见的错误是使用 YYYY。 yyyy 指定日历年,而 YYYY 指定年份(“一年中的一周”),用于 ISO 年-周日历。在大多数情况下,yyyy 和 YYYY 产生相同的数字,但它们可能不同。通常您应该使用日历年。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      相关资源
      最近更新 更多