NSDateFormatter return 从特定日期开始为零

NSDateFormatter return nil from specific dates

我在使用 NSDateFormatter 时遇到问题 return 没有特定日期,例如 2016 年 10 月 16 日 | 2017 年 10 月 15 日 | 2018 年 10 月 21 日 ...

我尝试了一些日期模式:yyyy/MM/dd、MM/dd/yyyy、dd/MM/yyyy,但总是 return nil。

有什么想法吗?

试试这个:

如果你的日期是字符串。

NSString *dateStr = @"October 16, 2016";

   // Convert string to date object
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"LLLL d, yyyy "];
    //  [dateFormat setDateStyle:NSDateFormatterShortStyle];
    NSDate *date = [dateFormat dateFromString:dateStr];

    NSLog(@"%@", [dateFormat stringFromDate:date]);

如果你使用[dateFormat setDateStyle:NSDateFormatterShortStyle];,结果会是10/16/16

对于swift 使用这种格式:MMMM d, yyyy

 var mydate = "October 16, 2016"
        let formatter = NSDateFormatter()
        formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
        formatter.dateFormat = "MMMM dd, yyyy"
        if let parsedDateTimeString = formatter.dateFromString(mydate) {

            print(formatter.stringFromDate(parsedDateTimeString))
        } else {
            print("date format is wrong")
        }

输出: 2016 年 10 月 16 日

你住在巴西吗?

在这 3 个特定日期,巴西的夏令时从 0:00 更改为 1:00。

由于 0:00 不存在日期为 nil